我有很多数据存储在关联数组中。
array = {'key':'value'};
如何使用普通for循环而不是像这样的循环遍历这样的数组: http://jsfiddle.net/HzLhe/
我不想因为这个问题而使用for-in: Mootools when using For(...in Array) problem
答案 0 :(得分:8)
正如其他人所指出的,这不是一个数组。这是一个JavaScript对象。要迭代它,您将不得不使用for ... in循环。但要过滤掉其他属性,您必须使用hasOwnProperty
。
示例:
var obj={'key1': 'value1','key2':'value2'};
for (var index in obj) {
if (!obj.hasOwnProperty(index)) {
continue;
}
console.log(index);
console.log(obj[index]);
}
答案 1 :(得分:3)
JavaScript没有关联数组的概念。相反,您只需要一个具有可枚举属性的对象,因此使用for..in循环来迭代它们。如上所述,您可能还希望使用hasOwnProperty
执行检查,以确保您不会对继承的属性执行操作。
for (var prop in obj){
if (obj.hasOwnProperty(prop)){
console.log(obj[prop]);
}
}