一般透過obj.key可以拿到value,那我要反過來,該怎麼做?
key到value的映射是單向的,並且value並不具有唯一性。 所以由key拿到value是沒有問題的,但是反之則不行。
key
value
for...in循環物件判斷獲取?
for...in
我有個笨方法
遍歷對象,判斷目前對象的 value 是否等於要查的值,如果匹配到輸出key
輸出 value 並不是唯一的,透過 value 拿到可以不行 。
參考一下,如果用 lodash 可以直接用 _.findKey
_.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這樣拿出來
key
到value
的映射是單向的,並且value
並不具有唯一性。所以由
key
拿到value
是沒有問題的,但是反之則不行。for...in
循環物件判斷獲取?我有個笨方法
遍歷對象,判斷目前對象的 value 是否等於要查的值,如果匹配到輸出key
輸出 value 並不是唯一的,透過 value 拿到可以不行 。
參考一下,如果用 lodash 可以直接用
_.findKey
能循環拿嗎? $.each這樣拿出來