将数组转换为对象数组的最佳方法是什么?

时间:2013-09-16 20:53:39

标签: javascript jquery

如何改变这个......

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

......进入这个:

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

2 个答案:

答案 0 :(得分: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"
        }
    });
}

答案 1 :(得分: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;
}