javascript - Js物件怎麼透過value值拿到key值?
曾经蜡笔没有小新
曾经蜡笔没有小新 2017-06-30 09:58:56
0
6
986

一般透過obj.key可以拿到value,那我要反過來,該怎麼做?

曾经蜡笔没有小新
曾经蜡笔没有小新

全部回覆(6)
大家讲道理

keyvalue的映射是單向的,並且value並不具有唯一性。
所以由key拿到value是沒有問題的,但是反之則不行。

过去多啦不再A梦

for...in循環物件判斷獲取?

我想大声告诉你

我有個笨方法

遍歷對象,判斷目前對象的 value 是否等於要查的值,如果匹配到輸出key

世界只因有你

輸出 value 並不是唯一的,透過 value 拿到可以不行 。

三叔

參考一下,如果用 lodash 可以直接用 _.findKey

var data = {
  a: 1,
  b: 'string',
  c: {},
  d: {a: 98, b: 'str'}
}

function findKey (value, compare = (a, b) => a === b) {
  return Object.keys(data).find(k => compare(data[k], value))
}

var val = data.b
findKey(val) // b

// 自定义比较函数,比如结合 lodash 可以
findKey({a: 98, b: 'str'}, _.isEqual) // d
刘奇

能循環拿嗎? $.each這樣拿出來

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板