使用 underscore.js 将多个数组组合到对象集合
Combine multiple array to object collection using underscore.js
我有一些数组收集的信息,比如:
var names = ["Jack", "Marry", "Bob"]
var cars = ["Audi", "BMW", "Volvo"]
我希望这些信息像集合一样组合成对象,例如:
[{name:"Jack", car: "Audi"}, {name: "Marry", car:"BMW"}, {name:"Bob", car:"Volvo"}]
我可以通过一些步骤来做到这一点:
var combine = _.zip(names, cars)
var collection= _.map(combine, function(info){
return _.object(["name", "car"], info);
});
还有其他方法可以使代码看起来更好吗?
谢谢
es5怎么样array.map()?
var names = ["Jack", "Marry", "Bob"]
var cars = ["Audi", "BMW", "Volvo"]
var result = names.map(function(val, key){
return {name: val, car: cars[key]}
})
console.log(result); //[{car: "Audi", name: "Jack"}, {car: "BMW", name: "Marry"}, {car: "Volvo", name: "Bob"}]
P.S。如果数组的长度不同,请为 case 添加条件
如果你想坚持使用 Underscore,你可以使用 chaining:
组合你的两个步骤
var result = _(names).chain()
.zip(cars)
.map(function(a) { return { name: a[0], car: a[1] } })
.value();
我有一些数组收集的信息,比如:
var names = ["Jack", "Marry", "Bob"]
var cars = ["Audi", "BMW", "Volvo"]
我希望这些信息像集合一样组合成对象,例如:
[{name:"Jack", car: "Audi"}, {name: "Marry", car:"BMW"}, {name:"Bob", car:"Volvo"}]
我可以通过一些步骤来做到这一点:
var combine = _.zip(names, cars)
var collection= _.map(combine, function(info){
return _.object(["name", "car"], info);
});
还有其他方法可以使代码看起来更好吗? 谢谢
es5怎么样array.map()?
var names = ["Jack", "Marry", "Bob"]
var cars = ["Audi", "BMW", "Volvo"]
var result = names.map(function(val, key){
return {name: val, car: cars[key]}
})
console.log(result); //[{car: "Audi", name: "Jack"}, {car: "BMW", name: "Marry"}, {car: "Volvo", name: "Bob"}]
P.S。如果数组的长度不同,请为 case 添加条件
如果你想坚持使用 Underscore,你可以使用 chaining:
组合你的两个步骤var result = _(names).chain()
.zip(cars)
.map(function(a) { return { name: a[0], car: a[1] } })
.value();