У меня есть две коллекции, и у объектов есть общий ключ "userId". Как показано ниже:
var _= require('lodash');
var a = [
{ userId:"p1", item:1},
{ userId:"p2", item:2},
{ userId:"p3", item:4}
];
var b = [
{ userId:"p1", profile:1},
{ userId:"p2", profile:2}
];
Я хочу объединить их на основе "userId" для создания:
[ { userId: 'p1', item: 1, profile: 1 },
{ userId: 'p2', item: 2, profile:2 },
{ userId: 'p3', item: 4 } ]
У меня есть до сих пор:
var u = _.uniq(_.union(a, b), false, _.property('userId'));
Результат:
[ { userId: 'p1', item: 1 },
{ userId: 'p2', item: 2 },
{ userId: 'p3', item: 4 },
{ userId: 'p1', profile: 1 },
{ userId: 'p2', profile: 2 } ]
Как я могу слить их сейчас?
Я попробовал _.keyBy, но это приводит к:
{ p1: { userId: 'p1', profile: 1 },
p2: { userId: 'p2', profile: 2 },
p3: { userId: 'p3', item: 4 } }
что неверно.
Какой последний шаг я должен сделать?