4

我有很多数据存储在关联数组中。

array = {'key':'value'};

如何使用普通的 for 循环而不是像这里的循环来循环这样的数组:http: //jsfiddle.net/HzLhe/

由于这个问题,我不想使用 for-in: Mootools when using For(...in Array) 问题

4

2 回答 2

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]);
}

http://jsfiddle.net/jeffshaver/HzLhe/3/

于 2013-04-04T11:12:29.623 回答
4

JavaScript 没有关联数组的概念。相反,您只需拥有一个具有可枚举属性的对象,因此请使用 for..in 循环遍历它们。如上所述,您可能还需要执行检查hasOwnProperty以确保您没有对继承的属性执行操作。

for (var prop in obj){
    if (obj.hasOwnProperty(prop)){
        console.log(obj[prop]);
    }
}
于 2013-04-04T11:12:19.463 回答