-1

I am trying to make an Array of Object which adds the same weekday data in one object like if we have weekday:1 in five objects then we will get

{...{}, weekDay:1, repeated:5}

This is dynamic data I can make a code with a hade code result like filtering weekDay === 1 and then find the return array length but what I want at the moment is one function that takes this data Array and returns the comprehensive Array which will not repeat same weekDay and give me the repeated number like

{...{}, weekDay:1, repeated:5}

Data we have :

[
    {
        "weekDay": 1,
        "role": "admin"
    },
    {
        "weekDay": 2,
        "role": "creator"
    },
    {
        "weekDay": 1,
        "role": "creator"
    },
    {
        "weekDay": 1,
        "role": "creator"
    },
    {
        "weekDay": 1,
        "role": "creator"
    },
    {
        "weekDay": 2,
        "role": "creator"
    },
    {
        "weekDay": 2,
        "role": "screener"
    },
    {
        "weekDay": 2,
        "role": "creator"
    },
    {
        "weekDay": 3,
        "role": "screener"
    },
    {
        "weekDay": 2,
        "role": "creator"
    },
    {
        "weekDay": 2,
        "role": "screener"
    },
    {
        "weekDay": 2,
        "role": "creator"
    },
    {
        "weekDay": 3,
        "role": "creator"
    },
    {
        "weekDay": 3,
        "role": "creator"
    },
    {
        "weekDay": 3,
        "role": "screener"
    },
    {
        "weekDay": 4,
        "role": "creator"
    },
    {
        "weekDay": 3,
        "role": "screener"
    },
    {
        "weekDay": 3,
        "role": "creator"
    },
    {
        "weekDay": 3,
        "role": "screener"
    },
   {
        "weekDay": 4,
        "role": "screener"
    },
    {
        "weekDay": 4,
        "role": "screener"
    },
    {
        "weekDay": 4,
        "role": "screener"
    },
    {
        "weekDay": 5,
        "role": "screener"
    },
    {
        "weekDay": 4,
        "role": "screener"
    },
    {
        "weekDay": 4,
        "role": "creator"
    },
    {
        "weekDay": 4,
        "role": "screener"
    },
    {
        "weekDay": 5,
        "role": "screener"
    },
    {
        "weekDay": 5,
        "role": "screener"
    },
    {
        "weekDay": 5,
        "role": "creator"
    },
    {
       "weekDay": 6,
        "role": "creator"
    },
    {
        "weekDay": 5,
        "role": "screener"
   },
    {
        "weekDay": 1,
        "role": "screener"
    },
    {
        "weekDay": 2,
        "role": "creator"
    },
    {
        "weekDay": 1,
       "role": "screener"
    },
    {
        "weekDay": 1,
        "role": "screener"
    },
    {
        "weekDay": 1,
        "role": "creator"
    },
    {
        "weekDay": 2,
        "role": "screener"
    },
    {
        "weekDay": 2,
        "role": "creator"
    },
    {
        "weekDay": 2,
        "role": "creator"
    },
    {
        "weekDay": 3,
        "role": "creator"
    },
    {
        "weekDay": 2,
        "role": "creator"
    },
    {
        "weekDay": 2,
        "role": "screener"
    },
    {
        "weekDay": 2,
        "role": "screener"
    },
    {
        "weekDay": 3,
        "role": "screener"
    },
    {
        "weekDay": 34,
        "role": "creator"
    }
]
3
  • How do I format my posts using Markdown or HTML?
    – Andreas
    Commented Aug 18, 2021 at 11:15
  • Please show us what you've tried so far to solve this on your own, and also add a minimal example (is the role really relevant for the question?) for the input and the expected output for that given input.
    – Andreas
    Commented Aug 18, 2021 at 11:17
  • first I want overall data(users) to be formatted role is not relevant in it but after that I want same week day creators and screeners too. like how many creators in week 1 and so one Commented Aug 18, 2021 at 11:28

1 Answer 1

0

Check if this is what you want:

const data = [
    {
        "weekDay": 1,
        "role": "admin"
    },
    {
        "weekDay": 2,
        "role": "creator"
    },
    {
        "weekDay": 1,
        "role": "creator"
    },
    {
        "weekDay": 1,
        "role": "creator"
    },
    {
        "weekDay": 1,
        "role": "creator"
    },
    {
        "weekDay": 2,
        "role": "creator"
    },
    {
        "weekDay": 2,
        "role": "screener"
    },
    {
        "weekDay": 2,
        "role": "creator"
    },
    {
        "weekDay": 3,
        "role": "screener"
    },
    {
        "weekDay": 2,
        "role": "creator"
    },
    {
        "weekDay": 2,
        "role": "screener"
    },
    {
        "weekDay": 2,
        "role": "creator"
    },
    {
        "weekDay": 3,
        "role": "creator"
    },
    {
        "weekDay": 3,
        "role": "creator"
    },
    {
        "weekDay": 3,
        "role": "screener"
    },
    {
        "weekDay": 4,
        "role": "creator"
    },
    {
        "weekDay": 3,
        "role": "screener"
    },
    {
        "weekDay": 3,
        "role": "creator"
    },
    {
        "weekDay": 3,
        "role": "screener"
    },
   {
        "weekDay": 4,
        "role": "screener"
    },
    {
        "weekDay": 4,
        "role": "screener"
    },
    {
        "weekDay": 4,
        "role": "screener"
    },
    {
        "weekDay": 5,
        "role": "screener"
    },
    {
        "weekDay": 4,
        "role": "screener"
    },
    {
        "weekDay": 4,
        "role": "creator"
    },
    {
        "weekDay": 4,
        "role": "screener"
    },
    {
        "weekDay": 5,
        "role": "screener"
    },
    {
        "weekDay": 5,
        "role": "screener"
    },
    {
        "weekDay": 5,
        "role": "creator"
    },
    {
       "weekDay": 6,
        "role": "creator"
    },
    {
        "weekDay": 5,
        "role": "screener"
   },
    {
        "weekDay": 1,
        "role": "screener"
    },
    {
        "weekDay": 2,
        "role": "creator"
    },
    {
        "weekDay": 1,
       "role": "screener"
    },
    {
        "weekDay": 1,
        "role": "screener"
    },
    {
        "weekDay": 1,
        "role": "creator"
    },
    {
        "weekDay": 2,
        "role": "screener"
    },
    {
        "weekDay": 2,
        "role": "creator"
    },
    {
        "weekDay": 2,
        "role": "creator"
    },
    {
        "weekDay": 3,
        "role": "creator"
    },
    {
        "weekDay": 2,
        "role": "creator"
    },
    {
        "weekDay": 2,
        "role": "screener"
    },
    {
        "weekDay": 2,
        "role": "screener"
    },
    {
        "weekDay": 3,
        "role": "screener"
    },
    {
        "weekDay": 34,
        "role": "creator"
    }
];


const map = data.reduce((map, item) => ({ ...map, [item.weekDay]: (map[item.weekDay] || 0) + 1 }), {});
const arr = Object.keys(map).map((key) => ([{ weekDay: key, repeated: map[key] }]));
console.log(arr);

0

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.