我有一个数组,我在其中使用字符串作为数组的索引。假设我有:
var array = [];
array["a"] = 1;
array["b"] = 2;
array["c"] = 33;
如何在“数组”中迭代以显示其所有元素?
我有一个数组,我在其中使用字符串作为数组的索引。假设我有:
var array = [];
array["a"] = 1;
array["b"] = 2;
array["c"] = 33;
如何在“数组”中迭代以显示其所有元素?
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]`
}
}
带有字符串索引的“数组”在 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]);
}
}
数组只有可以被解析为整数的索引。