jQuery.each:重新排序数组

时间:2011-07-16 00:28:16

标签: jquery each numeric css-position

我最近一直在摆弄数组和数组排序,并偶然发现了一些奇怪的东西。

采取这种情况:

arr = {};
arr[1] = "one";
arr[2] = "two";
arr[105] = "three";
arr[4] = "four";

$.each(arr, function (key, val) {
    $(body).html(key + " => " + val);
});

现在,我们希望得到以下结果:

1 => one
2 => two
105 => three
4 => four

右?不幸的是。我收到一个数字排序,导致索引105成为序列中的最后一项。有人知道如何克服这个问题吗?非常感谢您的指导,谢谢。

2 个答案:

答案 0 :(得分:9)

那不是数组。这是一个对象。因此,没有保证订单。

为了保证某种序列,您可以在Array中定义序列,然后迭代该Array,从对象中选择每个数组值的索引。

arr = {};
arr[1] = "one";
arr[2] = "two";
arr[105] = "three";
arr[4] = "four";

var order = [1,2,105,4];

$.each(order, function(i,val) {
    console.log( val + '=>' + arr[ val ] );
});

答案 1 :(得分:0)

也许你可以试试这个:

arr =
[   ['1', 'one']
,   ['2', 'two']
,   ['105', 'three']
,   ['4', 'four']
];

$.each(arr, function(key, values)
{
    $(body).html(values[0] + " => " + values[1]);
});