To group an array of objects according to the keys. In the below sample grouping by key “item”.
var outputArray = inputArray.reduce(function(a, e) {
var estKey = e["item"];
(a[estKey] ? a[estKey] : a[estKey] = null || []).push(e);
return a;
}, {});
Input =>
[
{
item: "CV365CGB",
serialNum: "151250028K0089"
},
{
item: "CV365CGB",
serialNum: "151250028K0079"
},
{
item: "CV365CGB",
serialNum: "151250028K0064"
},
{
item: "CV365CGB",
serialNum: "151250028K0087"
},
{
item: "CV365CGB",
serialNum: "151250028K0084"
},
{
item: "CV365CGB",
serialNum: "151250028K0074"
},
{
item: "CVRCPV2",
serialNum: "424099191058"
}
]
Output=>
{
CV365CGB: [
{
item: "CV365CGB",
serialNum: "151250028K0089"
},
{
item: "CV365CGB",
serialNum: "151250028K0079"
},
{
item: "CV365CGB",
serialNum: "151250028K0064"
},
{
item: "CV365CGB",
serialNum: "151250028K0087"
},
{
item: "CV365CGB",
serialNum: "151250028K0084"
},
{
item: "CV365CGB",
serialNum: "151250028K0074"
}
],
CVRCPV2: [
{
item: "CVRCPV2",
serialNum: "424099191058"
}
]
}