Group an Array of an object according to Keys.

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"
      }
   ]
}

Leave a comment

Your email address will not be published. Required fields are marked *