2012-01-02 66 views
6

我有以下片段,它返回一些YouTube的ID。 現在我想扭轉輸出(因爲現在是倒數第一)jquery反向數組

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

我試過.reverse(),但有些項目似乎缺少那麼

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

任何幫助將不勝感激。 凱撒

+2

而不是通過的'$ as'數組向後移動的(對'遞減0'),然後反向排列,爲什麼不去* *轉發通過'$ as'陣列,通過對'遞增我<$ lis.length'? – 2012-01-02 16:03:18

+1

你在哪裏調用'links.reverse()。push(youtubeid($ as [i] .href));'?在你的循環?你應該只調用一次'reverse'。 – kba 2012-01-02 16:06:53

回答

2

嘗試添加視頻以相反的順序,所以不是這個

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

做這個

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

他傑森。這工作:-)現在我怎麼能只刪除陣列中的第一個 感謝您的幫助 – ceasar 2012-01-02 16:36:57

+0

links.shift();是我自己的問題的答案:-) – ceasar 2012-01-02 16:54:16

9

你應該扭轉名單你積累後:

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

但它會最好先將元素按照正確的順序放入數組中。

+0

這也適用。 什麼是最好的解決方案 傑森的還是你的? 你知道如何跳過數組中的第一個嗎? 謝謝 – ceasar 2012-01-02 16:39:33

+0

@ceasar刪除第一個元素 - 'var first = links.shift();' – Alnitak 2012-01-02 16:45:50

+0

我已經找到了那個。 非常感謝您的幫助:-) – ceasar 2012-01-02 16:47:23

0

嗨你扭轉鏈接數組後,你必須將其分配給其他數組,因此它將工作。

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