-3

これをどう回すか…

var data1 = ['Test1', 'Test2'];

...これに:

var data2 = [{
    name: 'Test1',
    type: {
        id: 'TEST'
    }
}, {
    name: 'Test2',
    type: {
        id: 'TEST'
    }
}];
4

2 に答える 2

3

本当に近道はありません。単純にループして、新しい配列を生成します。ES5 対応システムでは、以下を使用できますArray#map

var data2 = data1.map(function(entry) {
    return {
        name: entry,
        type: {
            id: "TEST"
        }
    };
});

Array#map以前のエンジンで shim を使用するか (いくつかのオプションについては「es5 shim」を検索してください)、単純に標準のforループを使用できます。

var index;
var data2 = [];
for (index = 0; index < data1.length; ++index) {
    data2.push({
        name: data1[index],
        type: {
            id: "TEST"
        }
    });
}
于 2013-09-16T20:56:48.883 に答える