J'ai un objet et je souhaite supprimer toutes les valeurs sauf celle qui correspond à une clé particulière. Par exemple, je pourrais le faire:JavaScript: supprime toutes les clés, sauf une, d'un objet
function remove(obj, key) {
var value = obj[key]
var ret = {}
ret[key] = obj[key]
obj = ret
}
Ou je pourrais itérer:
for (var k in obj) {
if (k != key) {
delete obj[k]
}
}
Mais je me demande s'il y a une meilleure façon. La création d'une variable temporaire et l'itération sur l'ensemble de l'objet semblent toutes deux inutiles. Ma première tentative a été:
obj = {
key: obj[key]
}
Mais qui a abouti à un objet avec une clé de key
.
Essayez '[key]: [key] obj'. Vous avez besoin d'une propriété calculée, pas d'une propriété littérale ici. – Xufox
@saniales c'est ce que j'ai essayé initialement et cela n'a pas fonctionné. lire la fin de la question – ewok
est la clé d'une variable? – gurvinder372