2010-02-05 4 views
0

J'ai cette fonctionpourquoi array.shift ignore une valeur?

$(this).each(function(index) { 

      arr[index] = ($(this).attr('id')); 
      console.log(arr[index]);    

      fullId[index] = "#"+arr.shift(); 
      console.log(fullId[index]);  
}); 

Les résultats que je me attends sont

A 
#A 
B 
#B 
C 
#C 
D 
#D 

Les résultats réels sont

A 
#A 
B 
Undefined 
C 
#B 
D 
Undefined 

Pourquoi est-ce?

Répondre

4

Vous vous rendez compte que shiftarr modifie les index de tous les éléments de la matrice, non?

Et pourtant n'affectera pas $(this) du tout?

+0

Je ne comprends pas votre réponse/question? – Catfish

+0

Essayez d'imprimer l'intégralité de 'arr' après chaque appel à' shift'. Cela clarifiera le problème. –

+0

Ohh ok je vois ce qui se passe. Merci mec. – Catfish

Questions connexes