Maison > Questions et réponses > le corps du texte
Généralement, la valeur peut être obtenue via obj.key, mais si je veux faire l'inverse, que dois-je faire ?
大家讲道理2017-06-30 10:00:56
Il n'y a aucun problème avec
key
到value
的映射是单向的,并且value
并不具有唯一性。
所以由key
拿到value
, mais l'inverse n'est pas possible.
我想大声告诉你2017-06-30 10:00:56
J'ai une méthode stupide
Parcourez l'objet et déterminez si la valeur de l'objet actuel est égale à la valeur à vérifier si elle correspond à la clé de sortie
.世界只因有你2017-06-30 10:00:56
La valeur de sortie n'est pas unique. Elle peut être obtenue par valeur.
三叔2017-06-30 10:00:56
Pour référence, si vous utilisez du lodash, vous pouvez l'utiliser directement _.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