Я пытаюсь объединить два массива объектов в соответствии с парой значений ключа, но это дает результат, который не соответствует ожиданиям. Я объясняю весь документ своим кодом ниже.
let arr1 = [
{
"_id": "PU2-TEXT BOOK",
"dispatchcount": 2,
"totalDispatchValue": 5810,
"totalDiscountValue": 150
},
{
"_id": "PU2-Mathematics Part - 1 Text Book",
"dispatchcount": 1,
"totalDispatchValue": 4131,
"totalDiscountValue": 150
},
{
"_id": "Boys White & Blue Striped Half Shirt",
"dispatchcount": 1,
"totalDispatchValue": 4131,
"totalDiscountValue": 150
}
]
let arr2 = [
{
"_id": "PU2-TEXT BOOK",
"pendingcount": 2,
"totalPendingValue": 14157,
"totalPendingDiscountValue": 1518
},
{
"_id": "PU2-Accountancy Part - 2 Text Book",
"pendingcount": 1,
"totalPendingValue": 9002,
"totalPendingDiscountValue": 834
}
]
let arr3 = arr1.map((item, i) => Object.assign({}, item, arr2[i]));
console.log(arr3);
Здесь мне нужно объединить оба arr1 and arr2
в соответствии с ключом _id
значение, если найдены какие-либо совпадения, тогда оба объекта объединятся, если не найдены из 2-го массива, тогда исходное значение останется как есть. Мой ожидаемый результат приведен ниже.
Ожидаемый результат ::
[
{
"_id": "PU2-TEXT BOOK" ,
"dispatchcount": 2 ,
"totalDispatchValue": 5810 ,
"totalDiscountValue": 150 ,
"pendingcount": 2 ,
"totalPendingValue": 14157 ,
"totalPendingDiscountValue": 1518
},
{
"_id": "PU2-Mathematics Part - 1 Text Book",
"dispatchcount": 1,
"totalDispatchValue": 4131,
"totalDiscountValue": 150,
"pendingcount": 0 ,
"totalPendingValue": 0 ,
"totalPendingDiscountValue": 0
},
{
"_id": "Boys White & Blue Striped Half Shirt",
"dispatchcount": 1,
"totalDispatchValue": 4131,
"totalDiscountValue": 150,
"pendingcount": 0 ,
"totalPendingValue": 0 ,
"totalPendingDiscountValue": 0
},
{
"_id": "PU2-Accountancy Part - 2 Text Book",
"pendingcount": 1,
"totalPendingValue": 9002,
"totalPendingDiscountValue": 834,
"dispatchcount": 0 ,
"totalDispatchValue": 0 ,
"totalDiscountValue": 0
}
]
Итак, здесь я хочу объединить два массива объектов в соответствии с ключом _id
. Если некоторые из них совпадают, тогда оба объекта объединятся, и если объект из 1-го массива отсутствует во 2-м или наоборот, он также объединится со значением 0 для тех ключей, которых нет.