2017-10-10 2 views
1

Désolé si c'est une question stupide, mais je suis un peu nouveau à ceci. J'ai plusieurs objets (object1, object2, object3 ...) qui ont chacune les mêmes propriétés (property1, property2, property3 ...) comme ceci:Javascript: passer en revue la même propriété de plusieurs objets

var object1 = {color: red, length: 1, width: 6}; 
var object2 = {color: blue, length: 4, width: 2}; 
var object3 = {color: green, length: 4, width: 5}; 

Comment puis-je faire une boucle for qui traverse la même propriété de chaque objet, au lieu de chaque propriété pour un objet?

Merci!

+1

boucles nid. Pensez-y comme un tableau 2d. Ou utilisez les abstractions map/reduce/filer en fonction des besoins. – rjustin

+1

vous avez besoin d'un tableau de ces objets ou une sorte de référence à ces objets à parcourir –

+0

Extrayez ['Object.values ​​()'] (https://developer.mozilla.org/en-US/docs/Web/ JavaScript/Référence/Global_Objects/Objet/valeurs) et ['Object.keys()'] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys) –

Répondre

4

Vous pouvez itérer d'abord les propriétés et les objets d'un tableau.

var object1 = { color: 'red', length: 1, width: 6 }, 
 
    object2 = { color: 'blue', length: 4, width: 2 }, 
 
    object3 = { color: 'green', length: 4, width: 5 }; 
 

 
['color', 'length', 'width'].forEach(function (k) { 
 
    [object1, object2, object3].forEach(function (o) { 
 
     console.log(o[k]); 
 
    }); 
 
});
.as-console-wrapper { max-height: 100% !important; top: 0; }

+0

Notez que si vous savez que tous les objets ont les mêmes propriétés, vous pouvez remplacer les propriétés codées en dur par 'Object.keys (object1) ' – juvian

+0

@juvian, mais alors, vous pourriez prendre un tableau const pour les touches, pas besoin de rendre les clés encore et encore. –