Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 'use strict';
- var out=new Map();
- var util=require("util");
- function walkit(item) {
- let a = item.key.split("|");
- let iG, iP, iS;
- iG = a[0] || null;
- iP = a[1] || null;
- iS = a[2] || null;
- if (iG && !out.has(iG)) { //first time this gp is seen so create a new entry
- out.set(iG, {category:item.category,subcategories:new Map()});
- }
- if (iP && !out.get(iG).subcategories.get(iP)){ //parent not found for this gp so set a new entry
- out.get(iG).subcategories.set(iP,{subcategory:item.subcategory,items: []});
- }
- if(iG && iP && iS){
- out.get(iG).subcategories.get(iP).items.push( item);
- }
- }
- let input=[
- {key:'1',category:"Mens"},
- {key:'1|1',category:"Mens",subcategory:"Coats"},
- {key:'1|1|1',category:"Mens",subcategory:"Coats",item:"Bombers Jacket",description:"A really cool bomber"},
- {key:'1|1|2',category:"Mens",subcategory:"Coats",item:"Submarine Jacket",description:"Keeps the water out"},
- {key:'1|1|3',category:"Mens",subcategory:"Coats",item:"Parka",description:"Perfect for snow"},
- {key:'1|2',category:"Mens",subcategory:"Shirts"},
- {key:'1|2|4',category:"Mens",subcategory:"Shirts",item:"T Shirt",description:"Your standard T Shirt"},
- {key:'1|2|5',category:"Mens",subcategory:"Shirts",item:"Muscle Shirt",description:"For th buff"},
- {key:'1|2|6',category:"Mens",subcategory:"Shirts",item:"Coverup",description:"For the wimp"},
- {key:'2',category:"Womens"},
- {key:'2|1',category:"Womens",subcategory:"Jackets"},
- {key:'2|1|1',category:"Womens",subcategory:"Jackets",item:"Parka",description:"A godsend in snow"},
- {key:'2|1|2',category:"Womens",subcategory:"Jackets",item:"Ski Jacket",description:"Hit the slopes"},
- {key:'2|1|3',category:"Womens",subcategory:"Jackets",item:"Shell",description:"When it is breezy"},
- {key:'2|2',category:"Womens",subcategory:"Shirts"},
- {key:'2|2|4',category:"Womens",subcategory:"Shirts",item:"T Shirt",description:"V Neck"},
- {key:'2|2|5',category:"Womens",subcategory:"Shirts",item:"See Thru Shirt",description:"Not available in large sizes"},
- {key:'2|2|6',category:"Womens",subcategory:"Shirts",item:"Bikini Coverup",description:"Need we say more"}
- ]
- input.forEach(function(item){
- walkit(item);
- });
- out.forEach(function(value,key,mp){
- console.log("Category:",value.category);
- value.subcategories.forEach(function(val2,key2,mp2){
- console.log(" ","SubCategory:",val2.subcategory);
- val2.items.forEach(function(item){
- console.log(" ",item.item,"--",item.description)
- });
- });
- });
- Output
- Category: Mens
- SubCategory: Coats
- Bombers Jacket -- A really cool bomber
- Submarine Jacket -- Keeps the water out
- Parka -- Perfect for snow
- SubCategory: Shirts
- T Shirt -- Your standard T Shirt
- Muscle Shirt -- For th buff
- Coverup -- For the wimp
- Category: Womens
- SubCategory: Jackets
- Parka -- A godsend in snow
- Ski Jacket -- Hit the slopes
- Shell -- When it is breezy
- SubCategory: Shirts
- T Shirt -- V Neck
- See Thru Shirt -- Not available in large sizes
- Bikini Coverup -- Need we say more
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement