jQuery.each:重新排序数组

nde*_*ung 4 each jquery 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);
});
Run Code Online (Sandbox Code Playgroud)

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

1 => one
2 => two
105 => three
4 => four
Run Code Online (Sandbox Code Playgroud)

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

use*_*716 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 ] );
});
Run Code Online (Sandbox Code Playgroud)