4

I have a lot of data stored in associative array.

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

How to loop throught an array like this using an normal for loop and not a loop like here: http://jsfiddle.net/HzLhe/

I don't want to use for-in because of this problems: Mootools when using For(...in Array) problem

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 に答える