简体   繁体   English

循环 object 数组

[英]Looping over array of object

I have an array of objects, trying to create a new array我有一个对象数组,试图创建一个新数组

 a=[
    {
        sessionID: '1',
        timestamp: '2022-06-26T05:47:00.794Z',
        taskName: 'abc'
    },
    {
        sessionID: '1',
        timestamp: '2022-06-26T05:47:21.626Z',
        taskName: 'def'
    },
    {
        sessionID: '1',
        timestamp: '2022-06-26T05:47:21.626Z',
        taskName: 'ghi'
    },
    {
        sessionID: '1',
        timestamp: '2022-06-26T05:47:21.626Z',
        taskName: 'jkl'
    },
    {
        sessionID: '2',
        timestamp: '2022-06-26T11:01:48.499Z',
        taskName: '123'
    },
    {
        sessionID: '2',
        timestamp: '2022-06-26T11:28:07.389Z',
        taskName: '456'
    }
]

trying to create a new array based on session ID [abc<<def<<ghi<<jkl,123<<456]尝试基于 session ID [abc<<def<<ghi<<jkl,123<<456] 创建一个新数组

lets group array of objects by something using reduce method.让我们使用reduce方法对对象数组进行分组。

 var a = [{sessionID:"1",timestamp:"2022-06-26T05:47:00.794Z",taskName:"abc"},{sessionID:"1",timestamp:"2022-06-26T05:47:21.626Z",taskName:"def"},{sessionID:"1",timestamp:"2022-06-26T05:47:21.626Z",taskName:"ghi"},{sessionID:"1",timestamp:"2022-06-26T05:47:21.626Z",taskName:"jkl"},{sessionID:"2",timestamp:"2022-06-26T11:01:48.499Z",taskName:"123"},{sessionID:"2",timestamp:"2022-06-26T11:28:07.389Z",taskName:"456"}]; var result = Object.values(a.reduce(function(agg, item) { agg[item.sessionID] = agg[item.sessionID] || []; agg[item.sessionID].push(item.taskName) return agg }, {})).map(function(item) { return item.join("<<<"); }) console.log(result)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM