合并两个匹配id的数组

Pra*_*ats 3 javascript underscore.js angularjs

我有两个数组

var members = [{docId: "1234", userId: 222}, {docId: "1235", userId: 333}];
var memberInfo = [{id: 222, name: "test1"}, {id: 333, name: "test2"}];
Run Code Online (Sandbox Code Playgroud)

我需要将它合并到一个以编程方式匹配用户ID的单个数组

最终的数组应该是这样的

var finalArray = [{docId: "1234", userId: 222, name: "test1"}, {docId: "1235", userId: 333, name: "test2"}]
Run Code Online (Sandbox Code Playgroud)

有没有更简洁的方法来做到这一点,我在我的应用程序中有下划线库,但我找不到一个干净的方法来实现这一目标

Gru*_*nny 8

使用下划线的解决方案:

var finalArray = _.map(members, function(member){
    return _.extend(member, _.omit(_.findWhere(memberInfo, {id: member.userId}), 'id'));
});
Run Code Online (Sandbox Code Playgroud)
  1. 跨成员的 _.map
  2. 使用_.findWhere查找匹配的成员信息
  3. _.omit来自匹配成员信息的id密钥
  4. _.使用成员信息扩展成员