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>';