Advertisement
Guest User

Untitled

a guest
Oct 20th, 2019
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.09 KB | None | 0 0
  1. var riskCategories = {
  2. 'Critical': {
  3. entries: [],
  4. dates: {},
  5. },
  6. 'High Risk': {
  7. entries: [],
  8. dates: {},
  9. },
  10. 'Medium Risk': {
  11. entries: [],
  12. dates: {},
  13. },
  14. 'Low Risk': {
  15. entries: [],
  16. dates: {},
  17. },
  18. };
  19.  
  20. var data = generateRandomData(50);
  21.  
  22. data.forEach(item => {
  23. if (riskCategories[item.Risk]) {
  24. riskCategories[item.Risk].entries.push(item);
  25.  
  26. if (!riskCategories[item.Risk].dates[item.CreatedAt]) { // Newly added date, create it in object
  27. riskCategories[item.Risk].dates[item.CreatedAt] = 0;
  28. }
  29.  
  30. riskCategories[item.Risk].dates[item.CreatedAt] += 1;
  31. }
  32. else {
  33. console.error('Invalid risk level -- ' + item.Risk);
  34. }
  35. });
  36.  
  37. // Risk categories will now be an object with keys being the risk level, an entry containing all records for risk level, and
  38. // an entry with a map of dates per risk level.
  39. console.log(riskCategories);
  40.  
  41. // Example output
  42. // {
  43. // Critical: {
  44. // entries: [
  45. // {Risk: 'Critical', CreatedAt: 10/01/2019},
  46. // {Risk: 'Critical', CreatedAt: 10/02/2019},
  47. // {Risk: 'Critical', CreatedAt: 10/02/2019},
  48. // ],
  49. // dates: {
  50. // 10/01/2019: 1,
  51. // 10/02/2019: 2,
  52. // },
  53. // },
  54. // Medium Risk: {
  55. // entries: [
  56. // {Risk: 'Medium Risk', CreatedAt: 10/01/2019},
  57. // {Risk: 'Medium Risk', CreatedAt: 10/01/2019},
  58. // {Risk: 'Medium Risk', CreatedAt: 10/01/2019},
  59. // ],
  60. // dates: {
  61. // 10/01/2019: 3,
  62. // },
  63. // },
  64. // ...
  65. // }
  66.  
  67.  
  68.  
  69.  
  70. // Random data generator
  71. function generateRandomData(numberTogenerate) {
  72. var data = [];
  73. var today = new Date();
  74. for (var i = 0; i < numberTogenerate; i++) {
  75. var riskLevel = Object.keys(riskCategories)[Math.floor(Math.random() * Object.keys(riskCategories).length)];
  76. data.push({
  77. Risk: riskLevel,
  78. CreatedAt: new Date(today.getFullYear(), 9, (Math.random() * 7) + 1).toLocaleDateString()
  79. });
  80. }
  81.  
  82. return data;
  83. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement