725 Stimmen

Schleifenzähler/Index mit for of-Syntax in JavaScript abrufen

Vorsicht!

Frage gilt weiterhin für for…of Schleifen.> Nicht verwenden for…in zur Iteration über eine Array verwenden, um zu iterieren über die Eigenschaften eines Objekts. Das heißt, dies


Ich verstehe, dass die grundlegenden for…in Syntax in JavaScript sieht wie folgt aus:

for (var obj in myArray) {
    // ...
}

Aber wie bekomme ich die Schleife Zähler/Index ?

Ich weiß, dass ich wahrscheinlich etwas Ähnliches tun könnte:

var i = 0;
for (var obj in myArray) {
    alert(i)
    i++
}

Oder sogar die gute alte:

for (var i = 0; i < myArray.length; i++) {
    var obj = myArray[i]
    alert(i)
}

Aber ich würde lieber die einfachere for-in Schleife. Ich finde, sie sehen besser aus und machen mehr Sinn.

Gibt es einen einfacheren oder eleganteren Weg?


In Python ist das ganz einfach:

for i, obj in enumerate(myArray):
    print i

-2voto

Abrar ul Hassan Punkte 11
// this loop is used in advanced javascript
//For Example I have an array:
let array = [1,2,3,4,5];
1) for(let key in array){
      console.log(key);//this shows index of array {Result: 0,1,2,3,4}
      console.log(array[key]);//this show values of array {Result: 1,2,3,4,5}
   }
//Hopefully, You will quickly understand;

-6voto

assayag.org Punkte 435

Um for..of Schleife auf Array und abrufen Index können Sie verwenden Sie array1.indexOf(element) die den Indexwert eines Elements in der Schleife zurückgibt. Sie können mit dieser Methode sowohl den Index als auch den Wert zurückgeben.

array1 = ['a', 'b', 'c']
for (element of array1) {
    console.log(array1.indexOf(element), element) // 0 a 1 b 2 c
}

Wie bereits in den Kommentaren erwähnt, wird ein falscher Index zurückgegeben, wenn das Array nicht eindeutige Werte enthält. (bei arr = ['a', 'b', 'c', 'a'] wird der Index von arr[3] 0 statt 3 zurückgeben)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X