2012-01-02 36 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();