J'essaie de déterminer comment rechercher un objet pour vérifier s'il y a une correspondance avec la valeur de recherche. De là, je veux énumérer quels objets avaient une correspondance.
Pour cet exemple, je veux rechercher via J'ai essayé de configurer le p> nom1 code> et nom2 code> et voir si l'un d'entre eux dispose d'une valeur code> valeur code> de c code>. S'il y a une correspondance, énumérez les objets correspondant à la recherche. Si la valeur de recherche était pour A code>, il apparaîtrait alors uniquement nom1 code>. P> MyObject code > Avec des données mais je ne sais pas comment boucler à travers l'objet, vérifiez des valeurs spécifiques de la touche code> Options code> pour les comparer à la recherche. p> let myObject = {
name1: {
title: 'Mr',
options: ['A', 'B', 'C'],
},
name2: {
title: 'Mrs',
options: ['C', 'D', 'E'],
}
};
function myFunction() {
var optionSearch = 'C';
console.log(optionSearch);
for (var i = 0; i < myObject.length; i++) {
if (myObject[i].options == optionSearch)
console.log(myObject[i] + ' is equal to optionSearch');
else {
console.log('No match');
}
}
}
myFunction();
3 Réponses :
Cela devrait fonctionner:
Object.keys(myObject)
.filter((key) => {
return myObject[key].options.includes(optionSearch)
})
Les objets n'ont pas de longueur code> de la propriété code> de défaut. Donc, vous ne pouvez pas utiliser p> pour code> en boucle avec des index numériques. Vous pouvez plutôt utiliser pour ... dans code> pour boucler à travers l'objet comme celui-ci: let myObject = {name1:{title:'Mr',options:['A','B','C'],},name2:{title:'Mrs',options:['C','D','E'],}};
function getKeys(obj, option) {
return Object.keys(obj).filter(k => obj[k].options.includes(option))
}
console.log(getKeys(myObject, 'C')) // [ "name1", "name2"]
console.log(getKeys(myObject, 'A')) // [ "name1" ]
var myObject = {
name1: {
title: 'Mr',
options: ['A', 'B', 'C'],
},
name2: {
title: 'Mrs',
options: ['C', 'D', 'E'],
}
};
function myFunction(optionSearch) {
console.log(optionSearch);
for(var i in myObject) {
if (myObject[i].options.indexOf(optionSearch) >= 0)
console.log(i + ' is equal to optionSearch');
else {
console.log('No match');
}
}
}
Appliquer cette approche a fonctionné pour moi. Merci beaucoup Samir!