2012-01-02 8 views
6

Mam następujący fragment, który zwraca niektóre identyfikatory youtube. Teraz chcę odwrócić wyjścia (bo teraz jest to ostatni raz pierwszy)jquery reverse array

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); 
} 

Próbowałem .reverse(), ale niektóre elementy wydaje się, że brakuje następnie

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

Każda pomoc będzie mile widziane . Ceasar

+2

Zamiast ruchu do tyłu tablicy '$ as' (zmniejszanie kierunku' 0'), a następnie odwrócenie tablicę, to dlaczego nie iść do przodu * * poprzez tablicę '$ as' przez zwiększany w kierunku' i <$ lis.length'? –

+1

Skąd nazwałaś 'links.reverse(). Push (youtubeid ($ as [i] .href));'? W twojej pętli for? Powinieneś raz wywołać 'reverse'. – kba

Odpowiedz

2

spróbuj dodać wideo w odwrotnej kolejności, więc zamiast tego

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

Czy ta

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

On jason. To działa :-) Jak mogę usunąć tylko pierwszą z tych tablic? Dzięki za pomoc – ceasar

+0

links.shift(); jest odpowiedzią na moje własne pytanie :-) – ceasar

9

Należy odwrócić listę po już zgromadzone go:

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

ale byłoby to lepiej po prostu umieścić elementy w tablicy w odpowiedniej kolejności.

+0

To również działa. Jakie jest najlepsze rozwiązanie Jason's lub yours? Czy wiesz, jak pominąć pierwszy w tablicy? Dzięki – ceasar

+0

@ceasar usunąć pierwszy element - 'var first = links.shift();' – Alnitak

+0

Znalazłem już jeden. Wielkie dzięki za pomoc :-) – ceasar

0

Witam, po odwróceniu tablicy links, musisz przypisać ją do innej tablicy, a więc zadziała.

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