Rumah > Soal Jawab > teks badan
Secara amnya, nilai boleh diperolehi melalui obj.key, tetapi jika saya ingin melakukan sebaliknya, apakah yang perlu saya lakukan?
大家讲道理2017-06-30 10:00:56
Tiada masalah dengan
key
到value
的映射是单向的,并且value
并不具有唯一性。
所以由key
拿到value
, tetapi sebaliknya tidak boleh.
我想大声告诉你2017-06-30 10:00:56
Saya ada kaedah bodoh
Lintas objek, tentukan sama ada nilai objek semasa adalah sama dengan nilai yang akan diperiksa dan jika ia sepadan dengan kunci output
三叔2017-06-30 10:00:56
Untuk rujukan, kalau guna lodash boleh terus pakai _.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