use*_*813 3 javascript javascript-objects backbone.js underscore.js
我有两个收藏(菜单和订单)
菜单集包含Item对象的数组
[{'id': '1', 'name': 'apple'}, {'id': '2', 'name': 'orange'}]
Run Code Online (Sandbox Code Playgroud)
和订单采集也包含项目对象的数组
[{'id': '1', 'quantity': '0'}]
Run Code Online (Sandbox Code Playgroud)
我希望它们通过ID将它们的属性合并到另一个集合中(这仅用于模板目的):
[{'id': '1', 'name': 'apple', 'quantity': '1'}, {'id': '2', 'name': 'orange'}]
Run Code Online (Sandbox Code Playgroud)
是否有下划线方法或我需要为此定义一个函数?[似乎我在下划线上尝试了所有合并函数,但它们都没有按我预期的方式工作]
不要认为在underscore.js中定义了一个函数,但是一种方法是使用_.map和_.find函数,如下所示,
var menus = [{'id': '1', 'name': 'apple'}, {'id': '2', 'name': 'orange'}];
var orders = [{'id': '1', 'quantity': '0'}];
var newMenu = _.map(menus, function (menu) {
var order = _.find(orders, function (o) {
return o.id == menu.id;
});
return _.extend(menu, order);
});
console.log(newMenu);
Run Code Online (Sandbox Code Playgroud)