簡體   English   中英

使用 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"}]

PS,如果數組的長度不同,請添加一個條件

如果你想堅持使用 Underscore,你可以使用鏈接將你的兩個步驟結合起來:

var result = _(names).chain()
                     .zip(cars)
                     .map(function(a) { return { name: a[0], car: a[1] } })
                     .value();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM