2011-12-16 58 views
4

我正在做一个小秘密工具。输出将显示在表格中,在左侧我想列出存储在$.each()中的数字。因此,这里是我的代码:

$.each([1,2,3,4,5], function(i, l){ 


    var lol = (some math stuff here); 

    $("#output").append("<tr><td>" + l + "</td><td>" + lol + "</td><tr>"); 

}); 

这样做是输出如下:

1. lol1 
2. lol2 
3. lol3 
4. lol4 
5. lol5 

我试图做的是扭转l价值,但离开一切独自从而使输出,而不是长相像这样:

5. lol1 
4. lol2 
3. lol3 
2. lol4 
1. lol5 

回答

9

创建数组的副本,然后反转该数组。这里有一个工作示例:http://jsfiddle.net/naRKF/

而且代码(HTML是不是和你的一样,但JS技术是你应该专注于什么/使用):

var arr1 = [1,2,3,4,5]; 
var arr2 = arr1.slice().reverse(); //creates a copy and reverses it 

var html = ''; 
for(var i = 0; i < arr1.length; i++){ 
    html += '<div>' + arr2[i] + '.' + ' lol' + arr1[i] + '</div>'; 
} 

$('body').append(html); 
+0

DUDE。 这个完美的作品。对此,我真的非常感激。我之前尝试过为'(i = 0 ...)'做全部的事情,并且无法使其工作。非常感谢! – ggwicz 2011-12-16 15:47:53

2

$.each()将始终以正确的顺序迭代数组。你想为这个循环使用for循环,而不是jQuery的$.each()

+0

谢谢,我尝试使用`之前for`和我不能”不要错过。 maxedison的答案解决了这个问题。感谢您的贡献! – ggwicz 2011-12-16 15:49:07

2
x = [1,2,3,4,5] 
$.each(x.reverse(), function(i, l){ 
    var lol = (some math stuff here) 
    $("#output").append("<tr><td>" + l + "</td><td>" + lol + "</td><tr>") 
}) 
+0

这将反转输出,但不会像他想要的那样反转编号。 lol2与2,但应与4. http://jsfiddle.net/EEuN8/ – mrtsherman 2011-12-16 15:41:43

+0

嗯。这不起作用,但将数组作为单独的变量存储是一个很好的举措,并最终以maxedison的答案为我工作。感谢您的帮助! – ggwicz 2011-12-16 15:49:48

1

试试这个:

$.each([1,2,3,4,5].reverse(),function(i,l){... 

基本上,因为您使用的是本地数组,所以您可以简单地将其反转为相反的方向。

1

在这里你去

var arr = [1,2,3,4,5]; 
var counter = arr.length 
$.each(arr, function(i, l){ 

    var lol = "lol"+l; 

    $("#output").append("<tr><td>" + counter-- + ".&nbsp;&nbsp;</td><td>" + lol + "</td><tr>"); 

}); 

工作demo

0
var a=[1,2,3,4,5] 
$.each(a, function(i, l){ 
    var lol = (some math stuff here); 
    $("#output").append("<tr><td>" + a[a.length-i] + "</td><td>" + lol + "</td><tr>"); 
}); 
0

Soemthing这应该帮助:

function test(arr) { 
    if ($.isArray(arr)) { 
     var reverse = arr.slice().reverse(); 
     $(arr).each(function(i) { 
      console.log(reverse[i] + ". lol" + this); 
     }); 
    } 
} 

test([1, 2, 3, 4, 5]);