ArrayUnique
by Jose Montero
JavaScript
var invoicesDetail = [{ name: '', details: [{ quantity: 0 }]}];
var invoices = [
{ 'name': 'inv1', 'quantity': 1},
{ 'name': 'inv1', 'quantity': 5 },
{ 'name': 'inv2', 'quantity': 1},
{ 'name': 'inv2', 'quantity': 2}
];
var invoice = {};
var arr = [];
function arrUnique(invoices) {
var invArr = [];
var idx = 0;
for (var i = 0; i < invoices.length; i++)
{
if($.inArray(invoices[i].name, arr) == -1)
{
invoice = { 'name': invoices[i].name };
invoice.detail = [];
invArr.push(invoice);
arr.push(invoices[i].name);
}
else
{
idx++;
}
invoice.detail.push({quantity: invoices[i].quantity});
}
invoicesDetail = invArr;
return invoicesDetail;
}
var uniqueStandards = arrUnique(invoices);
document.body.innerHTML = '<pre>' + JSON.stringify(uniqueStandards) + '</pre>';