【问题标题】:How to format Array of Object with respect to the data inside of it in JavaScript如何在 JavaScript 中根据其中的数据格式化对象数组
【发布时间】:2021-10-20 04:28:45
【问题描述】:

我正在尝试创建一个 Object 数组,它将相同的工作日数据添加到一个对象中,例如如果我们在五个对象中有 weekday:1,那么我们将得到

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

这是动态数据,我可以使用 hade 代码结果编写代码,例如过滤 weekDay === 1,然后找到返回数组长度,但我现在想要的是一个函数,它获取这个数据数组并返回综合数组不会重复同一个工作日并给我重复的数字,例如

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

我们拥有的数据:

[
    {
        "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"
    }
]

【问题讨论】:

  • 请向我们展示您迄今为止为自己解决此问题所做的尝试,并为输入和预期添加一个最小示例(role 真的与问题相关吗?)给定输入的输出。
  • 首先我希望对整体数据(用户)进行格式化,角色与其中不相关,但之后我也希望在同一工作日创建者和筛选器。比如第一周有多少创作者等等

标签: javascript arrays reactjs sorting formatting


【解决方案1】:

检查这是不是你想要的:

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);

【讨论】:

    猜你喜欢
    • 2017-11-05
    • 2023-02-21
    • 2018-10-26
    • 2020-07-27
    • 1970-01-01
    • 2022-01-02
    • 2020-12-14
    • 2020-12-03
    • 2020-05-01
    相关资源
    最近更新 更多