Skip to content

Instantly share code, notes, and snippets.

@hynra
Created November 9, 2016 10:21
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save hynra/58941dfc2e1d44a4f77636faae6b8d14 to your computer and use it in GitHub Desktop.
Save hynra/58941dfc2e1d44a4f77636faae6b8d14 to your computer and use it in GitHub Desktop.
Grouping product berdasarkan kategori
var _jsn = [{
"nominal": "0",
"price": "0",
"product_code": "BPJSKS",
"product_name": "BPJS Kesehatan",
"product_category": "BPJS"
}, {
"nominal": "5000",
"price": "5050",
"product_code": "SN5",
"product_name": "Telkomsel Nasional",
"product_category": "PULSA"
}, {
"nominal": "10000",
"price": "10050",
"product_code": "SN10",
"product_name": "Telkomsel Nasional",
"product_category": "PULSA"
}, {
"nominal": "20000",
"price": "20050",
"product_code": "SN20",
"product_name": "Telkomsel Nasional",
"product_category": "PULSA"
}, {
"nominal": "25000",
"price": "25050",
"product_code": "SN25",
"product_name": "Telkomsel Nasional",
"product_category": "PULSA"
}, {
"nominal": "50000",
"price": "50050",
"product_code": "SN50",
"product_name": "Telkomsel Nasional",
"product_category": "PULSA"
}, {
"nominal": "100000",
"price": "100050",
"product_code": "SN100",
"product_name": "Telkomsel Nasional",
"product_category": "PULSA"
}, {
"nominal": "5000",
"price": "5050",
"product_code": "ISN5",
"product_name": "Indosat Nasional",
"product_category": "PULSA"
}, {
"nominal": "10000",
"price": "10050",
"product_code": "ISN10",
"product_name": "Indosat Nasional",
"product_category": "PULSA"
}, {
"nominal": "25000",
"price": "25050",
"product_code": "ISN25",
"product_name": "Indosat Nasional",
"product_category": "PULSA"
}, {
"nominal": "50000",
"price": "50050",
"product_code": "ISN50",
"product_name": "Indosat Nasional",
"product_category": "PULSA"
}, {
"nominal": "100000",
"price": "100050",
"product_code": "ISN100",
"product_name": "Indosat Nasional",
"product_category": "PULSA"
}, {
"nominal": "5000",
"price": "5050",
"product_code": "X5",
"product_name": "XL Nasional",
"product_category": "PULSA"
}, {
"nominal": "10000",
"price": "10050",
"product_code": "X10",
"product_name": "XL Nasional",
"product_category": "PULSA"
}, {
"nominal": "25000",
"price": "25050",
"product_code": "X25",
"product_name": "XL Nasional",
"product_category": "PULSA"
}, {
"nominal": "50000",
"price": "50050",
"product_code": "X50",
"product_name": "XL Nasional",
"product_category": "PULSA"
}, {
"nominal": "100000",
"price": "100050",
"product_code": "X100",
"product_name": "XL Nasional",
"product_category": "PULSA"
}];
console.log(_jsn.length);
//------------- get prod category
var prods = [];
var prodToCompare = "";
for (var i =0; i < _jsn.length; i++){
var firstCat = _jsn[i].product_category;
if(firstCat != prodToCompare){
prods.push(firstCat);
prodToCompare = firstCat;
}
}
console.log(prods);
// add to main cat
for(var i = 0; i < prods.length; i++){
var rootProd = {};
console.log("check "+prods[i]);
rootProd.category = prods[i];
var arrProd = [];
for(var j = 0; j < _jsn.length; j++){
if(_jsn[j].product_category == prods[i]){
arrProd.push(_jsn[j]);
rootProd.detail = arrProd;
}
}
prods[i] = rootProd;
}
console.log(JSON.stringify(prods));
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment