Advertisement
Guest User

Untitled

a guest
Jul 6th, 2015
141
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.52 KB | None | 0 0
  1. var weeks = [
  2. { "week": 15, "bugs": 6 },
  3. { "week": 16, "bugs": 12 },
  4. { "week": 17, "bugs": 23 },
  5. { "week": 18, "bugs": 13 },
  6. { "week": 19, "bugs": 10 },
  7. { "week": 20, "bugs": 11 },
  8. { "week": 21, "bugs": 11 },
  9. { "week": 22, "bugs": 2 },
  10. { "week": 15, "reopened": 1 },
  11. { "week": 16, "reopened": 1 },
  12. { "week": 17, "reopened": 2 },
  13. { "week": 18, "reopened": 4 },
  14. { "week": 19, "reopened": 3 },
  15. { "week": 20, "reopened": 1 },
  16. { "week": 21, "reopened": 4 },
  17. { "week": 22, "reopened": 1 },
  18. { "week": 15, "closed": 17 },
  19. { "week": 16, "closed": 35 },
  20. { "week": 17, "closed": 40 },
  21. { "week": 18, "closed": 34 },
  22. { "week": 19, "closed": 19 },
  23. { "week": 20, "closed": 29 },
  24. { "week": 21, "closed": 24 },
  25. { "week": 22, "closed": 1 }
  26. ];
  27.  
  28. var issues = [];
  29.  
  30. function mapWith(fn) {
  31. return function (list) {
  32. return Array.prototype.map.call(list, function (items) {
  33. return fn.call(this, items);
  34. });
  35. };
  36. };
  37.  
  38. function arrange(items) {
  39. for (item in items) {
  40. if (issues[item]) {
  41. issues[item] = {
  42. week : parseInt(item),
  43. issues: issues[item]
  44. };
  45. }
  46. }
  47. return issues.filter(function(){
  48. return true;
  49. });
  50. };
  51.  
  52. var mapper = mapWith(function(item) {
  53. var week = item.week;
  54. delete item.week;
  55. issues[week] = issues[week] || {};
  56. var issue = Object.keys(item)[0];
  57. issues[week][issue] = item[issue];
  58. return issues;
  59. });
  60.  
  61. arrange(mapper(weeks));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement