1
votes

Itérer dans un tableau d'objets en utilisant for each ou for in

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


3 commentaires

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/...


7 Réponses :


0
votes

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


0 commentaires

0
votes

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


0 commentaires

0
votes

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
    }
];


0 commentaires

0
votes

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


0 commentaires

0
votes

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


2 commentaires

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



0
votes

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


0 commentaires

0
votes

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


0 commentaires