2017-10-10 10 views
1

Sorry, wenn dies eine dumme Frage ist, aber ich bin irgendwie neu zu diesem Thema. Ich habe mehrere Objekte (object1, object2, Objekt3 ...), die jeweils die gleichen Eigenschaften haben (property1, property2, property3 ...) wie folgt aus:Javascript: Zyklus durch die gleiche Eigenschaft von mehreren Objekten

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

Wie kann ich eine for Schleife machen, die durch läuft die gleiche Eigenschaft jedes Objekts, anstelle jeder Eigenschaft für ein Objekt?

Vielen Dank!

+1

Nest Schleifen. Stellen Sie es sich als 2D-Array vor. Oder verwenden Sie die map/reduce/filter Abstraktionen je nach Bedarf. – rjustin

+1

Sie benötigen ein Array dieser Objekte oder irgendeine Art von Referenz zu diesen Objekten, um durch –

+0

gehen zu können. Check out ['Object.values ​​()'] (https://developer.mozilla.org/en-US/docs/Web/ JavaScript/Reference/Global_Objects/Object/values) und ['Object.keys()'] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys) –

Antwort

4

Sie könnten zuerst die Eigenschaften und dann die Objekte in einem Array iterieren.

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

Beachten Sie, dass Sie die hardcoded Eigenschaften durch 'Object.keys 'ersetzen können, wenn Sie wissen, dass alle Objekte dieselben Eigenschaften haben. object1) ' – juvian

+0

@juvian, aber dann könnten Sie ein const-Array für die Schlüssel verwenden, ohne die Schlüssel immer wieder rendern zu müssen. –

Verwandte Themen