2012-01-02 13 views
6

Bazı youtube kimliklerini döndüren aşağıdaki kod parçacığım var. Şimdi (şimdi son ilk olduğu için)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); 
} 

ben .reverse çalıştı() ancak bazı öğeler daha sonra

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

Herhangi bir yardım takdir edilecektir eksik gibi görünüyor çıktı tersine çevirmek istiyoruz . Bunu birikmiş ettik sonra bunun yerine bu

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

arasında, ters sırada videolar ekleyerek Ceasar

+2

yerine $ as' 'dizisi geriye doğru hareket ve ardından diziyi ters gitme neden * ileriye * $ as'' dizisi aracılığıyla, 'doğru artırarak (0'' doğru eksiltim) i $ lis.length'

+1

'links.reverse() 'yi nereye çağırdınız? (Youtubeid ($ i [i] .href));'? For döngüsünde? Sadece bir kez 'tersine' aramalısın. – kba

cevap

2

deneyin bu

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

O jason. Bu çalışır :-) Şimdi dizideki ilk olanı nasıl kaldırabilirim Yardımınız için teşekkürler – ceasar

+0

links.shift(); kendi soruma cevap :-) – ceasar

9

Listeyi ters gerektiğini yapın:

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

öğeleri ilk sırada doğru sıraya diziye koymak daha iyi olabilir.

+0

Bu da çalışır. En iyi çözüm nedir? Jason's veya sizinki? Ve dizideki ilk olanı nasıl atlayacağınızı biliyor musunuz? Teşekkürler – ceasar

+0

@clementar ilk elemanı kaldırmak için - 'var first = links.shift();' – Alnitak

+0

Bunu zaten buldum. Yardım için çok teşekkürler :-) – ceasar

0

Bağlantı dizisini tersine çevirdikten sonra merhaba, başka bir diziye atamanız gerekir ve bu nedenle çalışır.

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