0

我有一个数组,我在其中使用字符串作为数组的索引。假设我有:

var array = [];
array["a"] = 1;
array["b"] = 2;
array["c"] = 33;

如何在“数组”中迭代以显示其所有元素?

4

2 回答 2

5

JS 中的数组只能有序号数字键,但对象可以有字符串作为键。由于键不是序数,因此您不能对其本身进行迭代,但您可以显示所有元素:

var obj = {};
obj['a'] = 1;
obj['b'] = 2;
/* alternatively */ var obj = {'a': 1, 'b': 2};

for (var key in obj) {
    if (obj.hasOwnProperty(key)) {
        //access via `obj[key]`
    }
}
于 2013-03-11T01:18:22.583 回答
3

带有字符串索引的“数组”在 JS 中根本不是数组,而是一个有属性的对象。你要:

var obj = {
  a:1,
  b:2,
  c:33
};


for (var prop in obj){
  //this iterates over the properties of obj, 
  //and you can then access the values with obj[prop]
  if (obj.hasOwnProperty(prop)) {
    doSomething(obj[prop]);
  }
}

数组只有可以被解析为整数的索引。

于 2013-03-11T01:17:54.350 回答