Généralement, la valeur peut être obtenue via obj.key, mais si je veux faire l'inverse, que dois-je faire ?
Il n'y a aucun problème avec
key到value的映射是单向的,并且value并不具有唯一性。 所以由key拿到value, mais l'inverse n'est pas possible.
key
value
for...inJugement et acquisition d'objets en boucle ?
for...in
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
La valeur de sortie n'est pas unique. Elle peut être obtenue par valeur.
Pour référence, si vous utilisez du lodash, vous pouvez l'utiliser directement _.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
Puis-je le recycler ? Sortez $.each comme ça
Il n'y a aucun problème avec
key
到value
的映射是单向的,并且value
并不具有唯一性。所以由
key
拿到value
, mais l'inverse n'est pas possible.for...in
Jugement et acquisition d'objets en boucle ?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
.La valeur de sortie n'est pas unique. Elle peut être obtenue par valeur.
Pour référence, si vous utilisez du lodash, vous pouvez l'utiliser directement
_.findKey
Puis-je le recycler ? Sortez $.each comme ça