使用顺序for循环遍历关联数组

时间:2013-04-04 11:04:31

标签: javascript arrays for-loop

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

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

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

我不想因为这个问题而使用for-in: Mootools when using For(...in Array) problem

2 个答案:

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

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

答案 1 :(得分:3)

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

for (var prop in obj){
    if (obj.hasOwnProperty(prop)){
        console.log(obj[prop]);
    }
}