2012-01-02 9 views
6

Tengo el siguiente fragmento que devuelve algunos ID de youtube. Ahora quiero revertir la salida (porque ahora es el último primero)jquery matriz inversa

if (options.slideshow) { 
var links = []; 
var $lis = holder.parents('#yt_holder').find('li'); 
var $as = $lis.children('a'); 
for(var count = $lis.length-1, i = count; i >= 0; i--){ 
    links.push(youtubeid($as[i].href)); 
    } 
slideshow = '&playlist=' + links + ''; 
alert(slideshow); 
} 

me trataron .reverse(), pero algunos artículos Parece que falta entonces

links.reverse().push(youtubeid($as[i].href)); 

será apreciado Cualquier ayuda . Ceasar

+2

En lugar de mover hacia atrás a través de la matriz '$ as' (disminuyendo hacia' 0') y luego invertir la matriz, por qué no ir hacia delante * * a través de la serie de '$ as', incrementando hacia' i <$ lis.length'? –

+1

¿Dónde llamaste 'links.reverse(). Push (youtubeid ($ como [i] .href));'? En tu bucle for? Deberías simplemente llamar 'reverse' una vez. – kba

Respuesta

2

Trate de añadir los vídeos en el orden inverso, así que en vez de este

for(var count = $lis.length-1, i = count; i >= 0; i--){ 
    links.push(youtubeid($as[i].href)); 
    } 

Haz esto

for(var i = 0, count = $lis.length; i < count; i++){ 
    links.push(youtubeid($as[i].href)); 
    } 
+0

Él jason. Eso funciona :-) Ahora, ¿cómo puedo eliminar solo el primero en la matriz Gracias por su ayuda – ceasar

+0

links.shift(); es la respuesta a mi propia pregunta :-) – ceasar

9

Usted debe revertir la lista después de que haya acumulado que:

for (...) { 
    ... 
} 
links = links.reverse(); 

pero lo haría Sería mejor simplemente poner los elementos en la matriz en el orden correcto en primer lugar.

+0

Esto también funciona. ¿Cuál es la mejor solución Jason's o la tuya? ¿Y sabes cómo saltearte el primero en la matriz? Gracias – ceasar

+0

@ceasar para eliminar el primer elemento - 'var first = links.shift();' – Alnitak

+0

Ya encontré ese. Muchas gracias por la ayuda :-) – ceasar

0

Hola después de invertir la matriz de enlaces, tienes que asignarla a otra matriz y por lo tanto, funcionará.

var slideshow = []; 
slideshow = links.reverse();