首页 > 解决方案 > 在javascript中具有给定ID的组数组

问题描述

我将一个数组和一个 id 传递给一个函数,该函数将按 id 对该数组进行分组。

id = "f58d5d3a6c4"; // id is read-only
array = [
    {createOn: "2021-02-06T18:03:13.915", message: "Hello Subscriber"},
    {createOn: "2021-02-06T18:03:42.462", message: "New Messages"},
    {createOn: "2021-01-29T14:21:01.761", message: "Hello"},
    {createOn: "2021-02-06T18:02:56.145", message: "Hello Subscriber"}
]

我想像这样对上面的数组进行分组:

"f58d5d3a6c4": [
    {createOn: "2021-02-06T18:03:13.915", message: "Hello Subscriber"},
    {createOn: "2021-02-06T18:03:42.462", message: "New Messages"},
    {createOn: "2021-01-29T14:21:01.761", message: "Hello"},
    {createOn: "2021-02-06T18:02:56.145", message: "Hello Subscriber"}
]

这是我的代码,但在 console.log 之后我只得到一个空数组:

const group = array.reduce((r, a) => {
    var key = id;
    key = [...(r || []), a];
    return r;
}, []);

你能帮我解决这个问题吗?谢谢你。

标签: javascriptarraysreactjsgroup-by

解决方案


复杂,为什么不只是

id = "f58d5d3a6c4"; // id is read-only
array = [
    {createOn: "2021-02-06T18:03:13.915", message: "Hello Subscriber"},
    {createOn: "2021-02-06T18:03:42.462", message: "New Messages"},
    {createOn: "2021-01-29T14:21:01.761", message: "Hello"},
    {createOn: "2021-02-06T18:02:56.145", message: "Hello Subscriber"}
]


const newObj = {
  [id]: array
};
console.log(newObj);


推荐阅读