Просто получите все идентификаторы list_2, используя Object.keys
для итерации ключей list_2.Для каждого ключа используйте array.find
на list_1
, чтобы найти ссылку элемента, идентификатор которого совпадает с текущим зацикленным.Предполагая, что это число, я добавил безопасное приведение (+i.id
и +k
. Унарный оператор +
приведёт их к числу), чтобы убедиться, что критерии сравнения верны.
Послечто, если какой-либо элемент найден, просто присвойте зацикленное свойство свойству categories
.
BEWARE хотя: если list_1 или list_2 равны big ,характеристики find
могут не подходить.В этом случае вы должны сначала сделать карту и использовать ее, но это не так.
В качестве последнего примечания, angularjs здесь не нужен.
var list_1 = [
{id: 13205, name:'Allan', firstName:'jake'},
{id: 13210, name:'Douglas', firstName:'jordan'}
];
var list_2 = {13205: [{label:'type', sections: [{label: 'position'}]}]};
Object.keys(list_2).forEach(k => {
const found = list_1.find(i => +i.id === +k);
if (found) found.categories = list_2[k];
});
console.log(list_1);