记录从掘金上看到的“js数据格式转换”

原有数据格式 

  1. Array.prototype.groupBy = function(prop) {
  2. return this.reduce(function(groups, item) {
  3. var val = item[prop].toUpperCase();
  4. groups[val] = groups[val] || [];
  5. groups[val].push(item);
  6. return groups;
  7. }, {});
  8. }
  9. var cars = [
  10. {
  11. "id":"888888888888888888",
  12. "name":"帕加尼",
  13. "logo":"http://...",
  14. "initial":"p"
  15. },{
  16. "id":"888888888888888889",
  17. "name":"起亚",
  18. "logo":"http://...",
  19. "initial":"q"
  20. },
  21. {
  22. "id":"888888888888888890",
  23. "name":"奇瑞",
  24. "logo":"http://...",
  25. "initial":"q"
  26. }
  27. ];
  28.  
  29. var cardGurop = cars.groupBy("initial");
  30.  
  31. // cardGurop 的结果是:
  32. // {
  33. // "P":[
  34. // {
  35. // "id":"888888888888888888",
  36. // "name":"帕加尼",
  37. // "logo":"http://...",
  38. // "initial":"p"
  39. // }
  40. // ],
  41. // "Q":[
  42. // {
  43. // "id":"888888888888888889",
  44. // "name":"起亚",
  45. // "logo":"http://...",
  46. // "initial":"q"
  47. // },{
  48. // "id":"888888888888888890",
  49. // "name":"奇瑞",
  50. // "logo":"http://...",
  51. // "initial":"q"
  52. // }
  53. // ]
  54. // } 
  1. var keyArr = Object.keys(cardGurop);
  2. var cardList = [];
  3. keyArr.forEach(key => {
  4. cardList.push({
  5. "key" : key,
  6. "cars" : cardGurop[key]
  7. })
  8. });
  9.  
  10. // cardList 的结果是:
  11. // [
  12. // {
  13. // "key":"P",
  14. // "cars":[
  15. // {
  16. // "id":"888888888888888888",
  17. // "name":"帕加尼",
  18. // "logo":"http://...",
  19. // "initial":"p"
  20. // }
  21. // ]
  22. // },
  23. // {
  24. // "key":"Q",
  25. // "cars":[
  26. // {
  27. // "id":"888888888888888889",
  28. // "name":"起亚",
  29. // "logo":"http://...",
  30. // "initial":"q"
  31. // },
  32. // {
  33. // "id":"888888888888888890",
  34. // "name":"奇瑞",
  35. // "logo":"http://...",
  36. // "initial":"q"
  37. // }
  38. // ]
  39. // }
  40. // ];

posted @ 2017-08-14 20:29  Demoworld  阅读(309)  评论(0编辑  收藏  举报