使用 underscorejs 将项目插入数组对象

Insert an item to array object using underscorejs

我想使用 underscorejs 将一个 id 插入到现有的对象数组中。

输入数组

var arr = [{name:"iPhone"}, {name:"Samsung"}];

预期输出数组

var arr = [{name:"iPhone", owner_id: "555"}, {name:"Samsung", owner_id: "555"}];

尝试了以下,它的工作但正在寻找更好的方法

devices = []
arr.forEach(function(data) {
    var device = {};
    device.owner_id = "555";
    device.name= data.name;
    devices.push(device )
})

无需使用下划线。这是使用 .map 方法的简单方法。回调中返回的每个对象都将插入到设备数组中。

var devices = arr.map(function(data) {
    var device = {};
    device.owner_id = "555";
    device.name= data.name;

    return device;
})

如果你 console.log devices 它将打印(当然取决于数据):

[{name:"iPhone", owner_id: "555"}, {name:"Samsung", owner_id: "555"}];

先压缩它们,然后使用地图

var arr = [{name:"iPhone"}, {name:"Samsung"}];;
var ageArr = [{owner_id: "555"},{owner_id: "555"}];

var newArr = _.zip(arr, ageArr).map(function(v) {
    return _.extend(v[0], v[1]);
});

console.log(newArr);
<script src="http://underscorejs.org/underscore-min.js"></script>