Каков наилучший способ объединения данных в JavaScript? Есть ли такие библиотеки, как, например, Pandas
в Python
или итерация - путь? У меня есть два массива с различными объектами внутри. Список orders
содержит информацию о заказах в целом, а список ordersPayed
содержит информацию о том, был ли заказ уже оплачен + сумма и т. Д.
const orders = [
{
orderId: 1,
orderDate: '2018-01-01',
orderAmount: 100
},
{
orderId: 2,
orderDate: '2018-02-01',
orderAmount: 100
},
{
orderId: 3,
orderDate: '2018-03-01',
orderAmount: 100
},
{
orderId: 4,
orderDate: '2018-03-01',
orderAmount: 100
}];
const ordersPayed = [
{
orderId: 1,
payedAmount: 90,
debitorName: 'abc'
},
{
orderId: 3,
payedAmount: 80,
debitorName: 'abc'
},
{
orderId: 6,
payedAmount: 90,
debitorName: 'abc'
}];
let newOrderList = [];
for (i = 0; i < orders.length; i++) {
for (j = 0; j < ordersPayed.length; j++) {
if (orders[i].orderId == ordersPayed[j].orderId) {
newOrderList.push(orders[i].orderId);
newOrderList.push(orders[i].orderDate);
newOrderList.push(orders[i].orderAmount);
newOrderList.push(ordersPayed[j].payedAmount);
newOrderList.push(ordersPayed[j].debitorName);
}
else if (j == (ordersPayed.length-1)) {
newOrderList.push(orders[i].orderId);
newOrderList.push(orders[i].orderDate);
newOrderList.push(orders[i].orderAmount);
newOrderList.push('not_payed_yet');
newOrderList.push('not_known_yet');
}
}
}
console.log(newOrderList);
Совпадение производится клавишей orderId
. В конце я хочу получить новый список со всеми заказами + соответствующую информацию о том, были ли они уже оплачены или нет.
Приведенный выше код - мой подход, но я не знаю, хорошо ли это по соображениям производительности и есть ли еще подводные камни. Поэтому я подумал о подходящей библиотеке или о чем-то подобном.
К сожалению, это не работает на 100% правильно. Результат должен выглядеть примерно так:
[{
orderId: 1,
orderDate: '2018-01-01',
orderAmount: 100,
payedAmount: 90
},
{
orderId: 2,
orderDate: '2018-02-01',
orderAmount: 100,
payedAmount: 'not_payed_yet'
},
{
orderId: 3,
orderDate: '2018-03-01',
orderAmount: 100,
payedAmount: 80
},
{
orderId: 4,
orderDate: '2018-03-01',
orderAmount: 100,
payedAmount: 'not_payed_yet'
}]
У кого-нибудь есть советы?