I am trying to push an array of objects to another existing array of objects.
Example:
var invoices = [
{
InvoiceId: 2,
Contact: 'Jim',
InvoiceNumber: '3',
LineItems: []
},
{
InvoiceId: 1002,
Contact: 'Peter',
InvoiceNumber: '4' },
LineItems: []
}];
var invoiceLines = [
{ Id: 1003,
InvoiceId: 2 },
Amount: 1000,
{ Id: 1004,
InvoiceId: 2,
Amount: 1000,
{ Id: 1006,
InvoiceId: 1002,
Amount: 3000,}];
So I am trying to take each object in the invoiceLines array, and push it to invoices.Lineitems if InvoiceId matches. So it would look like this:
var result= [
{
InvoiceId: 2,
Contact: 'Jim',
InvoiceNumber: '3',
LineItems: [{
Id: 1003,
InvoiceId: 1002,
Amount: 1000},{
Id: 1004,
InvoiceId: 1002,
Amount: 1000}]
},
{
InvoiceId: 1002,
Contact: 'Peter',
InvoiceNumber: '4' },
LineItems: [{
Id: 1006,
InvoiceId: 1002,
Amount: 3000}]
}];
I have tried the following:
var result = _({})
.merge(
_(flattenedinvoiceLines).groupBy("InvoiceId").value(),
_(invoices).groupBy("Id").value())
.values()
.flatten()
.value();
}
How ever this just pushes into the invoices array, not invoice.LineItems.