在jQuery中反转$ .each输出

时间:2011-12-16 15:33:19

标签: javascript jquery each reverse

我正在制作一个小秘密工具。输出将在一个表格中,在左侧我想列出我在$.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

7 个答案:

答案 0 :(得分: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);

答案 1 :(得分:2)

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

答案 2 :(得分: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>")
})

答案 3 :(得分:1)

试试这个:

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

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

答案 4 :(得分: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

答案 5 :(得分: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>");
});

答案 6 :(得分:0)

这样的事情应该会有所帮助:

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