使用Lodash从字符串数组创建一个Object数组

时间:2015-07-28 14:04:41

标签: arrays angularjs object lodash

我有以下数组;

["Test1", "Test2", "Test3"]

我希望它像这样;

[{ id: 0, name: "Test1" }, { id: 1, name: "Test2" }, { id: 2, name: "Test3" }]

任何帮助? 我想我应该以某种方式使用_.object()来完成这项任务。

3 个答案:

答案 0 :(得分:4)

map()功能是你的朋友:

_.map(array, function(item, index) {
    return { id: index, name: item };
});

答案 1 :(得分:1)

当你使用角度时,这应该只是诀窍。

var newArray = [];
angular.forEach(myArray,function(item, key){
    newArray.push({id:key, name:item});
});

答案 2 :(得分:1)

以下解决方案不需要角度,仅基于lodash:

var newArray = [];

_.forEach(["Test1", "Test2", "Test3"], function (item, key) {
    newArray.push({
        id: key,
        name: item
    });
});