how to merge duplicate value in array of object site:stackoverflow.com code example

Example: how to merge duplicate value in array of object site:stackoverflow.com

var myArray = [
    {productId: 116605, productserialno: "324234"},
    {productId: 106290, productserialno: "12121"},
    {productId: 106290, productserialno: "12121"},
    {productId: 106293, productserialno: "4324343"}
];

var grouped = myArray.reduce(function (obj, product) {
    obj[product.productId] = obj[product.productId] || [];
    obj[product.productId].push(product.productserialno);
    return obj;
}, {});

var groups = Object.keys(grouped).map(function (key) {
    return {product: key, productserialno: grouped[key]};
});

var pre = document.createElement("pre");
pre.innerHTML = JSON.stringify(groups, null, 4);
document.body.appendChild(pre);

Tags:

Misc Example