J'ai une question sur l'objet. Je veux filtrer
pour renvoyer la liste des clés a la condition vraie dans cet objet ci-dessous:
arrayWantreturn = ["key1", "key3"]
Pour une raison quelconque, je dois ajouter une clé spécifique pour cela. Maintenant, je veux retourner un tableau a seclect true
.
myObject = { key1: { name:"key1", select:true }, key2: { name:"key2", select:false }, key3: { name:"key3", select:true } }
Merci beaucoup pour votre aide.
3 Réponses :
Vous pouvez peut-être essayer ce qui suit:
const myObject = { key1: { name:"key1", select:true }, key2: { name:"key2", select:false }, key3: { name:"key3", select:true } }; const result = Object.entries(myObject) .filter(([k, v]) => v['select']) .flatMap(e => e[1].name); console.log(result);
J'espère que cela vous aidera!
Vous pouvez obtenir les valeurs de votre objet en utilisant Object.values ()
, puis conservez tous les objets qui ont un select
de true
en utilisant .filter ()
a>. Vous pouvez alors .map ()
chaque objet restant à sa propriété de nom comme ceci:
const myObject = { key1: { name:"key1", select:true }, key2: { name:"key2", select:false }, key3: { name:"key3", select:true } }; const res = Object.values(myObject) .filter(({select}) => select) .map(({name}) => name); console.log(res);
Cela utilise une affectation de déstructuration pour extraire les valeurs de propriété dans les arguments de la méthode de rappel.
Vous pouvez faire une boucle avec cet objet:
var myObject = { key1: { name:"key1", select:true }, key2: { name:"key2", select:false }, key3: { name:"key3", select:true } }; var arr = []; for (var prop in myObject) { if (myObject[prop].select) { arr.push(myObject[prop].name); } } console.log(arr);