3

重複の可能性:
オブジェクトのプロパティ名を定義する Javascript 式?

オブジェクトを配列に追加しようとしていますが、名前と値を動的にしたいと考えています。次に例を示します。

    (function(){
        var data = [];

        for(i=0; i<5; i++){
            data.push({'name' + i: i});
    }

        console.log(data);
    })()

プロパティに変数を使用できないと思うので、どうすればよいかわかりません。

4

3 に答える 3

11

動的に名前が付けられたプロパティを使用する場合は、配列アクセス表記を使用する必要があります。

var temp = {};
temp['name' + i] = i;
data.push(temp);
IIFE では:
(function(){
    var data,
        temp,
        i;
    data = [];
    for (i = 0; i < 5; i += 1) {
        temp = {};
        temp['name' + i] = i;
        data.push(temp);
    }
    console.log(data);
}());
于 2012-10-19T17:11:23.760 に答える
5

変更されたコード: 変数値に基づくキーは、'[]' を使用してオブジェクトに追加できます。jsfiddle

 (function(){
        var data = [], a;

        for(i=0; i<5; i++){
             a = {};
             a['name' + i] = i;
            data.push(a);
    }

        console.log(data);
    })()
于 2012-10-19T17:11:40.110 に答える
3

このような:

for(i=0; i<5; i++){
    var obj = {};
    obj["name" + i] = i;
    data.push(obj);
}

しかし、なぜインデックスをプロパティ名にハードコーディングしたいのだろうかと思います。

配列があるため、関連付けられたインデックスが既にあります。また、物件を探すのも大変です。

元のインデックスの関連付けが必要な場合は、別のプロパティを使用します。

for(i=0; i<5; i++){
    data.push({name: i, idx: i});
}
于 2012-10-19T17:11:23.680 に答える