Data Source:
{
"status": 1,
"data": {
"tierpricing": [
{ "product_id": "1", "product_name_en": "product 1" },
{ "product_id": "1", "product_name_en": "product 1" },
{ "product_id": "1", "product_name_en": "product 1" },
{ "product_id": "1", "product_name_en": "product 1" },
{ "product_id": "2", "product_name_en": "product 2" },
{ "product_id": "2", "product_name_en": "product 2" },
{ "product_id": "2", "product_name_en": "product 2" },
{ "product_id": "3", "product_name_en": "product 3" },
{ "product_id": "3", "product_name_en": "product 3" },
{ "product_id": "3", "product_name_en": "product 3" }
]
}
}
Using the following for grouping by product name:
var tierprice = data.data.tierpricing.reduce(function(result, current) {
result[current.product_name_en] = result[current.product_name_en] || [];
result[current.product_name_en].push(current);
return result;
}, {});
Using this to get all the products
for (var key of Object.keys(tierprice)) {
item = {}
item ["product_name_en"] = key;
tierproducts.push(item);
}
console.log(tierproducts);
Shows:
[ { product_name_en: "product 1" },
{ product_name_en: "product 2" },
{ product_name_en: "product 3" } ]
What I am seeking is:
[ { product_name_en: "product 1", product_id: "1" },
{ product_name_en: "product 2", product_id: "2" },
{ product_name_en: "product 3", product_id: "3"} ]