Вполне возможно достичь этого простым Javascript за O(n)
время:
var a = [{_id:1, name: "Bhavin"},{_id:2, name: "Raj"},{_id:3, name: "Rahul"}];
var b = [{_id:1, post: "Developer"},{_id:2, post: "Quality Analyst"}];
const aById = a.reduce((map, { _id, name }) => map.set(_id, name), new Map());
const bById = b.reduce((map, { _id, post }) => map.set(_id, post), new Map());
const combined = [...aById.entries()].map(([_id, name]) => {
const person = { _id, name };
const post = bById.get(_id);
if (post) person.post = post;
return person;
});
console.log(combined);
var c = [{_id:1, name: "Bhavin", post: "Developer"},{_id:2, name: "Raj", post: "Quality Analyst"},{_id:3, name: "Rahul"}];
Map
с гарантированно имеют O(1)
время поиска.Хеш-карты объектов (например, {'1': 'Developer', '2': 'Quality Analyst'}
) - нет.
У вас было несколько опечаток в исходном коде, я предполагаю, что они были непреднамеренными - я исправил их в приведенном выше фрагменте кода.