-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可以在较早的引擎上进行填充(搜索“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 回答
0

Vanilla JS,旧兼容版本:

function convertArrayToObject(array) {
    var obj = [];
    for(var i = 0; i < array.length; i++) {
        obj.push({
            name: array[i],
            type: {
                id: 'TEST'
            }
        });
    }
    return obj;
}
于 2013-09-16T20:57:37.297 回答