循环遍历关联数组

Urb*_*coz 18 javascript

我正在使用javascript关联数组(arr)并使用此方法循环它.

for(var i in arr) {
    var value = arr[i];
    alert(i =") "+ value);
}
Run Code Online (Sandbox Code Playgroud)

问题是项目的顺序对我来说很重要,它需要从最后到第一个循环,而不是像现在一样循环到最后.

有没有办法做到这一点?

Ski*_*ick 44

四件事:

  1. JavaScript有数组(整数索引[见下面的注释])和对象(字符串索引).你在另一种语言中称之为关联数组的东西在JS中称为对象.

  2. 不应该使用for in循环JS数组.

  3. 如果您在循环对象,请使用:hasOwnProperty.

  4. JavaScript不保证对象中键的顺序.如果您关心订单,请改用阵列.

如果您使用的是普通数组,请执行以下操作:

for (var i = arr.length - 1; i >= 0; i--) {
    //do something with arr[i]
}
Run Code Online (Sandbox Code Playgroud)


Lin*_*een 14

使用以相反顺序按住键的临时数组:

var keys = new Array();

for (var k in arr) {
    keys.unshift(k);
}

for (var c = keys.length, n = 0; n < c; n++) {
   alert(arr[keys[n]]);
}
Run Code Online (Sandbox Code Playgroud)

  • @Urbycoz您可能想要考虑不接受这个答案并接受Skilldricks.我想删除我的,我不能因为你接受它(我过去的我说"谢谢").但是,Skilldrick更准确.谢谢. (3认同)