3

次のようなデータがある場合:

x = {"key1":"val1", "key2":"val2", "key3", "val3"};

キー、値、インデックスを返す関数を使用して for each を実行する標準的な方法はありますか?

私が行う方法は、キーの配列を定義し、インデックスを使用してアクセスすることですが、より簡単な方法はありますか?

何かのようなもの:

$.each(x, function(i, k, v) {
    //... do something here
}
4

2 に答える 2

6

Object.keys()リンクとともにArray.prototype.forEachリンク:

あらすじ

Object.keys( object ).forEach(function( element, index, array ) {
});

Object.keys()すべての独自のキーを配列として返し、.forEach()上記のように配列をループします。からArrayを取得するのでObject.keys()、もちろんそれを適用Array.prototype.sort()して、好きな順序でキーにアクセスすることもできます。例えば

Object.keys( object ).sort(function( a, b ) {
    return a.localeCompare( b );
}).forEach(function( element, index, array ) {
    console.log( object[ element ] );
});
于 2013-03-10T21:11:42.730 に答える
1

必要に応じて、独自の「インデックス」を作成できます

var i =0;
$.each(...... {
    /* code */
    i++;
});
于 2013-03-10T21:11:54.930 に答える