Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var riskCategories = {
- 'Critical': {
- entries: [],
- dates: {},
- },
- 'High Risk': {
- entries: [],
- dates: {},
- },
- 'Medium Risk': {
- entries: [],
- dates: {},
- },
- 'Low Risk': {
- entries: [],
- dates: {},
- },
- };
- var data = generateRandomData(50);
- data.forEach(item => {
- if (riskCategories[item.Risk]) {
- riskCategories[item.Risk].entries.push(item);
- if (!riskCategories[item.Risk].dates[item.CreatedAt]) { // Newly added date, create it in object
- riskCategories[item.Risk].dates[item.CreatedAt] = 0;
- }
- riskCategories[item.Risk].dates[item.CreatedAt] += 1;
- }
- else {
- console.error('Invalid risk level -- ' + item.Risk);
- }
- });
- // Risk categories will now be an object with keys being the risk level, an entry containing all records for risk level, and
- // an entry with a map of dates per risk level.
- console.log(riskCategories);
- // Example output
- // {
- // Critical: {
- // entries: [
- // {Risk: 'Critical', CreatedAt: 10/01/2019},
- // {Risk: 'Critical', CreatedAt: 10/02/2019},
- // {Risk: 'Critical', CreatedAt: 10/02/2019},
- // ],
- // dates: {
- // 10/01/2019: 1,
- // 10/02/2019: 2,
- // },
- // },
- // Medium Risk: {
- // entries: [
- // {Risk: 'Medium Risk', CreatedAt: 10/01/2019},
- // {Risk: 'Medium Risk', CreatedAt: 10/01/2019},
- // {Risk: 'Medium Risk', CreatedAt: 10/01/2019},
- // ],
- // dates: {
- // 10/01/2019: 3,
- // },
- // },
- // ...
- // }
- // Random data generator
- function generateRandomData(numberTogenerate) {
- var data = [];
- var today = new Date();
- for (var i = 0; i < numberTogenerate; i++) {
- var riskLevel = Object.keys(riskCategories)[Math.floor(Math.random() * Object.keys(riskCategories).length)];
- data.push({
- Risk: riskLevel,
- CreatedAt: new Date(today.getFullYear(), 9, (Math.random() * 7) + 1).toLocaleDateString()
- });
- }
- return data;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement