S'il vous plaît, comment faire une itération sur un tableau d'objets comme en utilisant "for each" ou "for in ou y a-t-il un autre moyen
{
"cards": [
{
"des": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin ut diam ac felis placerat consequat in vitae justo. Curabitur porta et dolor ac. Morbi quis elementum ipsum",
"cardName": "Aenean nec sem vestibulum",
"imgSrc": "Layer1.png",
"id": 1
},
{
"des": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin ut diam ac felis placerat consequat in vitae justo. Curabitur porta et dolor ac. Morbi quis elementum ipsum",
"cardName": "Aenean nec sem vestibulum",
"imgSrc": "tom-jagger.jpg",
"id": 2
},
{
"des": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin ut diam ac felis placerat consequat in vitae justo. Curabitur porta et dolor ac. Morbi quis elementum ipsum",
"cardName": "Aenean nec sem vestibulum",
"imgSrc": "Layer3.png",
"id": 3
}
]
}
j'ai besoin que la sortie soit chaque objet du tableau Disons aussi que je veux faire l'itération en utilisant le paramètre "id". comment faire cela
7 Réponses :
Essayez forEach
let k={
"cards": [
{
"des": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin ut diam ac felis placerat consequat in vitae justo. Curabitur porta et dolor ac. Morbi quis elementum ipsum",
"cardName": "Aenean nec sem vestibulum",
"imgSrc": "Layer1.png",
"id": 1
},
{
"des": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin ut diam ac felis placerat consequat in vitae justo. Curabitur porta et dolor ac. Morbi quis elementum ipsum",
"cardName": "Aenean nec sem vestibulum",
"imgSrc": "tom-jagger.jpg",
"id": 2
},
{
"des": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin ut diam ac felis placerat consequat in vitae justo. Curabitur porta et dolor ac. Morbi quis elementum ipsum",
"cardName": "Aenean nec sem vestibulum",
"imgSrc": "Layer3.png",
"id": 3
}
]
}
k.cards.forEach(a=>{
console.log(a.imgSrc)
console.log(a.des)
console.log(a.cardName)
})
Bien sûr, le moyen le plus simple est de Array.prototype.forEach () :
const cards = [
{
"des": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin ut diam ac felis placerat consequat in vitae justo. Curabitur porta et dolor ac. Morbi quis elementum ipsum",
"cardName": "Aenean nec sem vestibulum",
"imgSrc": "Layer1.png",
"id": 1
},
{
"des": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin ut diam ac felis placerat consequat in vitae justo. Curabitur porta et dolor ac. Morbi quis elementum ipsum",
"cardName": "Aenean nec sem vestibulum",
"imgSrc": "tom-jagger.jpg",
"id": 2
},
{
"des": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin ut diam ac felis placerat consequat in vitae justo. Curabitur porta et dolor ac. Morbi quis elementum ipsum",
"cardName": "Aenean nec sem vestibulum",
"imgSrc": "Layer3.png",
"id": 3
}
];
cards.forEach(card => console.log(card));
Il y a deux façons:
cards.map(function(each_item, index_key){
console.log(each_item);
});
... ...
for(var i in cards){
console.log(cards[i]);
}
ou
let cards =[
{
"des": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin ut diam ac felis placerat consequat in vitae justo. Curabitur porta et dolor ac. Morbi quis elementum ipsum",
"cardName": "Aenean nec sem vestibulum",
"imgSrc": "Layer1.png",
"id": 1
},
{
"des": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin ut diam ac felis placerat consequat in vitae justo. Curabitur porta et dolor ac. Morbi quis elementum ipsum",
"cardName": "Aenean nec sem vestibulum",
"imgSrc": "tom-jagger.jpg",
"id": 2
},
{
"des": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin ut diam ac felis placerat consequat in vitae justo. Curabitur porta et dolor ac. Morbi quis elementum ipsum",
"cardName": "Aenean nec sem vestibulum",
"imgSrc": "Layer3.png",
"id": 3
}
];
Cela dépend si vous voulez effectuer une itération dessus et revenir ou non.
Vous pouvez faire ce qui suit pour modifier la réponse au cours de l'itération ou simplement renvoyer chaque objet dans une boucle:
Carte: array.map renverra https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map
var array1 = ['a', 'b', 'c'];
array1.forEach(function(element) {
console.log(element);
});
Foreach: la méthode exécute une fonction fournie une fois pour chaque élément du tableau. https://developer.mozilla.org/ fr-FR / docs / Web / JavaScript / Reference / Global_Objects / Array / forEach
array.map(item => console.log(item));
Un certain nombre d'options s'offrent à vous pour parcourir (boucler) des données comme celle-ci. Les méthodes les plus courantes seraient:
Itération via Array#forEach():
var data = {
"cards": [
{
"des": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin ut diam ac felis placerat consequat in vitae justo. Curabitur porta et dolor ac. Morbi quis elementum ipsum",
"cardName": "Aenean nec sem vestibulum",
"imgSrc": "Layer1.png",
"id": 1
},
{
"des": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin ut diam ac felis placerat consequat in vitae justo. Curabitur porta et dolor ac. Morbi quis elementum ipsum",
"cardName": "Aenean nec sem vestibulum",
"imgSrc": "tom-jagger.jpg",
"id": 2
},
{
"des": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin ut diam ac felis placerat consequat in vitae justo. Curabitur porta et dolor ac. Morbi quis elementum ipsum",
"cardName": "Aenean nec sem vestibulum",
"imgSrc": "Layer3.png",
"id": 3
}
]
};
// Array.forEach method
data.cards.forEach(function(card) {
console.log(card);
});
// for-of loop
for(const card of data.cards) {
console.log(card);
};
// for-in loop
for(const key in data.cards) {
const value = data.cards[key];
console.log(value);
}; Itération via un itérateur en utilisant le pour -de construction:
for(const key in data.cards) {
const value = data.cards[key];
console.log(value);
};
Itération via un itérateur en utilisant la construction for-in :
for(const card of data.cards) {
console.log(card);
};
merci, mais disons que je veux faire l'itération en utilisant le paramètre "id". Comment puis-je faire cela
Si je comprends bien, vous souhaitez itérer via une clé , en utilisant la construction de boucle for - in - est-ce correct? Je viens de mettre à jour la réponse pour le démontrer - j'espère que cela aidera :)
let data={
"cards": [
{
"des": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin ut diam ac felis placerat consequat in vitae justo. Curabitur porta et dolor ac. Morbi quis elementum ipsum",
"cardName": "Aenean nec sem vestibulum",
"imgSrc": "Layer1.png",
"id": 1
},
{
"des": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin ut diam ac felis placerat consequat in vitae justo. Curabitur porta et dolor ac. Morbi quis elementum ipsum",
"cardName": "Aenean nec sem vestibulum",
"imgSrc": "tom-jagger.jpg",
"id": 2
},
{
"des": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin ut diam ac felis placerat consequat in vitae justo. Curabitur porta et dolor ac. Morbi quis elementum ipsum",
"cardName": "Aenean nec sem vestibulum",
"imgSrc": "Layer3.png",
"id": 3
}
]
}
function match(data,id){
return data.cards.filter(a=>id==a.id)
}
console.log(match(data,1))
En plus d'utiliser forEach et forIn, vous pouvez utiliser la fonction de carte javascript. Vous pouvez également utiliser des modules tiers tels que Lodash qui fournit de nombreuses fonctions d'aide utiles. Voici le lien Documentation Lodash
var _= require('lodash');
const cards = [
{
"des": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin ut diam ac felis placerat consequat in vitae justo. Curabitur porta et dolor ac. Morbi quis elementum ipsum",
"cardName": "Aenean nec sem vestibulum",
"imgSrc": "Layer1.png",
"id": 1
},
{
"des": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin ut diam ac felis placerat consequat in vitae justo. Curabitur porta et dolor ac. Morbi quis elementum ipsum",
"cardName": "Aenean nec sem vestibulum",
"imgSrc": "tom-jagger.jpg",
"id": 2
},
{
"des": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin ut diam ac felis placerat consequat in vitae justo. Curabitur porta et dolor ac. Morbi quis elementum ipsum",
"cardName": "Aenean nec sem vestibulum",
"imgSrc": "Layer3.png",
"id": 3
}
]
_.forEach(cards,item => {
console.log("cards has:",item)
})
Possibilité de dupliquer For-each sur un tableau en JavaScript?
vous pouvez trouver votre réponse ici: - stackoverflow.com/questions/634654/...
Duplication possible: stackoverflow.com/questions/16626735/...