2017-07-07 1 views
0

J'essayais d'utiliser la file d'attente dans javascript. Je faisais référence this linkComment supprimer des éléments de la file d'attente en javascript?

J'ai été en mesure d'ajouter à la file d'attente, mais en essayant de retirer de la file d'attente je n'ai pas réussi complètement.

var queue = []; 
var input = $(".text").text(); 
for (var i = 0; i < input.length; i++) { 
    queue.push("<span class='charToFade'>" + input.charAt(i) +"</span>"); 
} 
$(".text").text(""); 
for (var j = 0; j < queue.length; j++) { 
    $(".text").append(queue.shift()); 
} 

Entrée:

<div class="text">Phone</div> 

Sortie:

Pho 

vous pouvez vérifier la Jsfiddle

Quelqu'un peut me aider

+0

Qu'est-ce que vous essayez de faire dans votre violon? Je suis en mesure d'obtenir Pho, qui est ce que vous avez écrit le code pour. –

+1

J'essaie de remplacer chaque caractère par un élément dom, mais je faisais une erreur dans la boucle pour la longueur de la file d'attente. Merci pour le soutien – Chetan

Répondre

2

Le problème que vous exécutez en est que pour chaque itération de la file d'attente d'un élément est supprimé. Cela modifie l'évaluation attendue de la condition pour la boucle for car la longueur de la file d'attente change à chaque fois, à peu près à mi-chemin de la var. j est égale à la longueur de la file d'attente.

Je suggère d'utiliser une boucle while au lieu d'un pour:

while(queue.length > 0){ 
$(".text").append(queue.shift()); 
} 
1

Pendant que vous boucle le queue dans chaque itération la longueur sera réduite de 1. Donc, il ne sera pas itérer complètement.

var queue = []; 
var input = $(".text").text(); 
for (var i = 0; i < input.length; i++) { 
    queue.push("<span class='charToFade'>" + input.charAt(i) + "</span>"); 
} 
$(".text").text(""); 
var l = queue.length; 
for (var j = 0; j <l ; j++) { 
    var e = queue.shift(); 
    $(".text").append(e);  
} 
1

Une autre façon, pour utiliser la boucle:

var queue = []; 
var input = $(".text").text(); 
for (var i = 0; i < input.length; i++) { 
    queue.push("<span class='charToFade'>" + input.charAt(i) +"</span>"); 
} 
$(".text").text(""); 

// change here 
for (var j = queue.length; j >= 0; j--) { 
    $(".text").append(queue.shift()); 
}