2017-07-16 13 views
1

J'ai de la difficulté à comprendre comment cette boucle for-in montrant des valeurs indéfinies à la fin en JavaScript, mais en boucle la longueur du premier est 3. Alors, pourquoi tant de valeurs indéfinies.pourquoi dans la boucle montrant la valeur indéfinie

<div class="tab-menu"> 
    <ul> 
     <li id="first">first item</li> 
     <li id="second">second item</li> 
     <li id="third">third item</li> 
    </ul> 
</div> 

et la boucle -

var first = document.querySelectorAll(".tab-menu ul li"); 
var f; 
for (var i in first) { 
    f = first[i].innerHTML; 
    console.log(f); 
} 

Il va donner ceci dans la console -

"first item" 
"second item" 
"third item" 
undefined 
undefined 
undefined 
undefined 
undefined 
undefined 
+0

Vous devez comprendre comment fonctionne la boucle 'for ... in'. Utilisez la boucle 'for' à la place. –

Répondre

-1

Vous ne devriez pas utiliser for..in avec des tableaux. Essayez for..of:

var first = document.querySelectorAll(".tab-menu ul li"); 
var f; 
for(var el of first){ 
    f = el.innerHTML; 
    console.log(f); 
} 
1

Vous pouvez utiliser forEach.

var first = document.querySelectorAll(".tab-menu ul li") 

first.forEach(function(e) { 
    var f = e.innerHTML 
    console.log(f) 
}) 
+0

donc, lequel est préférable d'utiliser et aussi rapide - simple pour ou pour tous? –