Advertisement
Guest User

walkit

a guest
Jul 1st, 2015
187
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.39 KB | None | 0 0
  1. 'use strict';
  2. var out=new Map();
  3. var util=require("util");
  4. function walkit(item) {
  5. let a = item.key.split("|");
  6. let iG, iP, iS;
  7. iG = a[0] || null;
  8. iP = a[1] || null;
  9. iS = a[2] || null;
  10. if (iG && !out.has(iG)) { //first time this gp is seen so create a new entry
  11. out.set(iG, {category:item.category,subcategories:new Map()});
  12. }
  13. if (iP && !out.get(iG).subcategories.get(iP)){ //parent not found for this gp so set a new entry
  14. out.get(iG).subcategories.set(iP,{subcategory:item.subcategory,items: []});
  15. }
  16.  
  17. if(iG && iP && iS){
  18. out.get(iG).subcategories.get(iP).items.push( item);
  19. }
  20.  
  21. }
  22. let input=[
  23. {key:'1',category:"Mens"},
  24. {key:'1|1',category:"Mens",subcategory:"Coats"},
  25. {key:'1|1|1',category:"Mens",subcategory:"Coats",item:"Bombers Jacket",description:"A really cool bomber"},
  26. {key:'1|1|2',category:"Mens",subcategory:"Coats",item:"Submarine Jacket",description:"Keeps the water out"},
  27. {key:'1|1|3',category:"Mens",subcategory:"Coats",item:"Parka",description:"Perfect for snow"},
  28. {key:'1|2',category:"Mens",subcategory:"Shirts"},
  29. {key:'1|2|4',category:"Mens",subcategory:"Shirts",item:"T Shirt",description:"Your standard T Shirt"},
  30. {key:'1|2|5',category:"Mens",subcategory:"Shirts",item:"Muscle Shirt",description:"For th buff"},
  31. {key:'1|2|6',category:"Mens",subcategory:"Shirts",item:"Coverup",description:"For the wimp"},
  32. {key:'2',category:"Womens"},
  33. {key:'2|1',category:"Womens",subcategory:"Jackets"},
  34. {key:'2|1|1',category:"Womens",subcategory:"Jackets",item:"Parka",description:"A godsend in snow"},
  35. {key:'2|1|2',category:"Womens",subcategory:"Jackets",item:"Ski Jacket",description:"Hit the slopes"},
  36. {key:'2|1|3',category:"Womens",subcategory:"Jackets",item:"Shell",description:"When it is breezy"},
  37. {key:'2|2',category:"Womens",subcategory:"Shirts"},
  38. {key:'2|2|4',category:"Womens",subcategory:"Shirts",item:"T Shirt",description:"V Neck"},
  39. {key:'2|2|5',category:"Womens",subcategory:"Shirts",item:"See Thru Shirt",description:"Not available in large sizes"},
  40. {key:'2|2|6',category:"Womens",subcategory:"Shirts",item:"Bikini Coverup",description:"Need we say more"}
  41.  
  42. ]
  43. input.forEach(function(item){
  44. walkit(item);
  45. });
  46. out.forEach(function(value,key,mp){
  47. console.log("Category:",value.category);
  48. value.subcategories.forEach(function(val2,key2,mp2){
  49. console.log(" ","SubCategory:",val2.subcategory);
  50. val2.items.forEach(function(item){
  51. console.log(" ",item.item,"--",item.description)
  52. });
  53. });
  54. });
  55.  
  56. Output
  57. Category: Mens
  58. SubCategory: Coats
  59. Bombers Jacket -- A really cool bomber
  60. Submarine Jacket -- Keeps the water out
  61. Parka -- Perfect for snow
  62. SubCategory: Shirts
  63. T Shirt -- Your standard T Shirt
  64. Muscle Shirt -- For th buff
  65. Coverup -- For the wimp
  66. Category: Womens
  67. SubCategory: Jackets
  68. Parka -- A godsend in snow
  69. Ski Jacket -- Hit the slopes
  70. Shell -- When it is breezy
  71. SubCategory: Shirts
  72. T Shirt -- V Neck
  73. See Thru Shirt -- Not available in large sizes
  74. Bikini Coverup -- Need we say more
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement