const arr1 = [
{
id: '111',
order: 0,
value: 'sommme text',
},
{
id: '222',
order: 1,
value: 'another text',
},
];
const arr2 = [
{
o_id: "222",
some: []
},
{
o_id: "111",
some: []
},
];
const newArr = [];
arr1.forEach(item => {
arr2.forEach(o => {
if (item.id === o.o_id) {
newArr.push({ ...item, ...o})
}
})
});
const object = {};
const newArray = []
arr1.forEach(item => object[item.id] = item) // перегоняем первый массив в объект, где ключи объекта id элемента
arr2.forEach(item => {
const objectItem = object[item.id];
if (objectItem !== undefined) {
const mergeItem = Object.assign({}, objectItem, item);
newArray.push(mergeItem);
object[item.id] = undefined;
}
})
Это будет быстрее чем вложенный цикл по второму массиву.