首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用相同键的javascript合并嵌套数组

使用相同键的javascript合并嵌套数组
EN

Stack Overflow用户
提问于 2022-07-06 06:30:11
回答 1查看 43关注 0票数 -3

我必须组织数组,得到这样的响应数组

代码语言:javascript
运行
复制
let data = [
    {
        date: "2022-07-01T07:26:22",
        tips: [
            { id: 1 }
        ]
    },
    {
        date: "2022-07-01T12:05:55",
        tips: [
            { id: 1 }
        ]
    },
    {
        date: "2022-07-05T13:09:16",
        tips: [
            { id: 1 }
        ]
    },
    {
        date: "2022-07-05T13:31:07",
        tips: [
            { id: 1 }
        ]
    },
    {
        date: "2022-06-29T09:21:26",
        tips: [
            { id: 1 }
        ]
    }
]

期望的输出:

代码语言:javascript
运行
复制
let data = [
    {
        '2022-07-01': [
            {
                tips: [
                    { id: 1 }
                ]
            },
            {
                tips: [
                    { id: 1 }
                ]
            },
        ]
    },
    {
        '2022-07-05': [
            {
                tips: [
                    { id: 1 }
                ]
            },
            {
                tips: [
                    { id: 1 }
                ]
            },
        ]
    },
    {
        '2022-06-29': [
            {
                tips: [
                    { id: 1 }
                ]
            },
        ]
    }
]

我需要用相同的键获取上述数组格式的数据。我尝试过不同的方法来实现这一点,但没有得到正确的结果,这是获得理想输出的最佳方法。

提前谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-07-06 07:02:04

下面是使用reduce的解决方案。首先使用reduce进行分组,然后使用Object.values获取对象的值

代码语言:javascript
运行
复制
let data = [    {        date: "2022-07-01T07:26:22",        tips: [            { id: 1 }        ]    },    {        date: "2022-07-01T12:05:55",        tips: [            { id: 1 }        ]    },    {        date: "2022-07-05T13:09:16",        tips: [            { id: 1 }        ]    },    {        date: "2022-07-05T13:31:07",        tips: [            { id: 1 }        ]    },    {        date: "2022-06-29T09:21:26",        tips: [            { id: 1 }        ]    }]

let res = Object.values(data.reduce((acc,{date,tips})=>{
  let key = date.substring(0,10)
  acc[key] = acc[key] || {[key]:[]}
  acc[key][key].push({tips})
  return acc
},{}))

console.log(res)
代码语言:javascript
运行
复制
.as-console-wrapper { max-height: 100% !important; top: 0; }

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72878820

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档