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);