2016-08-04 15 views
-1

Ich habe ein Array von Objekten.Durchschleifen von Objekten in einem Array von Objekten

ABC.getAggregation("V")[0].getItems(); 

dies führt zu dem Ergebnis:

MY ARRAY OF OBJECTS

in der Konsole-i das Ergebnis bekommen kann ich für wie dies durch die Angabe der Position des Elements suchen:

ABC.getAggregation("V")[0].getItems()[0].getPosition() 
ABC.getAggregation("V")[0].getItems()[1].getPosition() 
ABC.getAggregation("V")[0].getItems()[2].getPosition() 

Das Ergebnis des obigen Codes erzeugt String-Werte, z. B. "3.4554,43,0".

Wie kann ich jedes Element durchlaufen und die Position in meinem Code erhalten. genau wie der obige Code, den ich in die Konsole eintippte. Es wird nicht immer 3 Objekte geben, deshalb kann ich die obigen 3 Zeilen nicht hart codieren.

+2

99% der Fragen erforderlich sind gebucht haben [MCVE (** M ** inimal, ** C ** vollständig und ** V ** verifizierbar ** E ** Beispiel)] (http://stackoverflow.com/help/mcve). Bitte posten Sie JavaScript/jQuery, CSS und HTML, die für Ihre Frage relevant sind. Erstellen Sie eine Demo mit einem oder allen der folgenden Dienste: [jsFiddle.net] (https://jsfiddle.net/), [CodePen.io] (https://codepen.io/), [Plunker. co] (http://pnnr.co/), [JS Bin] (https://jsbin.com/) oder ein Schnipsel (7. Symbol in der Symbolleiste des Texteditors oder STRG + M). – zer00ne

+0

http: // Stapelüberlauf.com/questions/38778974/how-to-call-artikel-from-array-inside-a-function – sarah

Antwort

1

Versuchen Sie, eine der Array.prototype.forEach() Funktion. Die Funktion wird für jedes Element im Array aufgerufen, wobei das Element als erster Parameter übergeben wird.

ABC.getAggregation("V")[0].getItems().forEach(function (item) { 
    item.getPosition(); 
    //do something else 
}); 

Mehr zu ".forEach()"

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach

+0

Danke! :) Es klappt! – sarah

+0

Könntest du mir bitte dabei helfen? http://stackoverflow.com/questions/38778974/how-to-call-items-from-an-array-inside-a-funktion – sarah

+0

können Sie mir dabei helfen? http://stackoverflow.com/questions/38778974/how-to-call-items-from-an-array-inside-a-function – sarah

-2

!! Offensichtlich ist dies ein gutes Beispiel dafür, wie es nicht zu tun: P

Sie können die Elemente in einem Array und Schleife durch sie wie folgt vergeben:

var items = ABC.getAggregation("V")[0].getItems(); 
var returnString = ""; 
for (var key in items) { 
    if (items .hasOwnProperty(key)) { 
    var element = items [key]; 
    returnString += element.getPosition() + ','; 
    } 
} 
returnString = returnString.substring(0, x.length-1); 
console.log(returnString); 
+1

Warum nicht nur für die Schleife? –

+0

Wie wäre es, wenn man mit "forEach" oder vielleicht auch mit "for" (var idx = 0, len = items.length; idx

+0

Mein Gedankengang war, dass, wenn .getItems() ein undefined im Array zurückgibt, würden wir nicht darüber iterieren und undefinierte Fehler erhalten. –

1

Sie for-Schleife verwenden können Trog alle iterieren von ihnen.

for(var i=0; i<ABC.getAggregation("V").getItems().length; i++) { 
    ABC.getAggregation("V")[0].getItems()[i].getPosition(); 
} 
+1

Sie vermissen() innerhalb Ihrer Schleife. 'ABC.getAggregation (" V ") [0] .getItems() [i] .getPosition();' –

+0

Danke, bearbeitet @ChrisG –

+0

Es sagt "getItems() ist keine Funktion" – sarah

1

Sie können es wie jedes andere Array behandeln:

var myArray = ABC.getAggregation("V")[0].getItems(); 
for(var i=0; i< myArray.length; i++){ 
    myArray[i].getPosition(); //Do something with the position. 
} 
+0

Danke! :) es funktioniert – sarah

+0

irgendwelche Hilfe mit diesem? :) http://stackoverflow.com/questions/38778974/how-to-call-items-from-an-array-inside-a-funktion – sarah

1

können Sie foreach-Schleife verwenden Trog alle von ihnen zu wechseln.

ABC.getAggregation("V").getItems().forEach (item, index) { 
    return ABC.getAggregation("V")[0].getItems()[index].getPosition(); 
} 
-1

Eine sehr einfache Art und Weise durch jedes Objekt im Array zu durchlaufen ist nur mit einem for-Schleife auf dem Array, brauchen Sie nicht einmal Ihre Iterieren Variable zu deklarieren.

ex:

var anArray = ['one', 'two', 'three']; 

for(i in anArray){ 
    console.log('index #: ' + i); 
    console.log(anArray[i]); 
} 

werden alle Elemente in anArray ausdrucken:

index #: 0 

one 

index #: 1 

two 

index #: 2 

three