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