如何限制数组大小,并在没有时间戳顺序的情况下用javascript将其余部分推送到新数组中



我有一个由objs{时间戳}数组组成的嵌套数组,我需要为每个子数组提供最多3个objs,当它达到极限时,在不混合时间戳的情况下创建一个新数组

例如,我在同一日期有一个由5个obs组成的子组,我需要一个由3个obs构成的子组和另一个由2个obj组成的

我拥有的数据

const results = 
[
[
{id: 3337, data: "data", date: '2022-08-02T12:25:00.000Z'},
{id: 3336, data: "data", date: '2022-08-02T12:24:00.000Z'},
{id: 3335, data: "data", date: '2022-08-02T12:23:00.000Z'},
{id: 3334, data: "data", date: '2022-08-02T12:22:00.000Z'}
],
[
{id: 4449, data: "data", date: '2022-07-15T12:25:00.000Z'},
{id: 4448, data: "data", date: '2022-07-15T12:25:00.000Z'},
{id: 4447, data: "data", date: '2022-07-15T12:25:00.000Z'},
{id: 4446, data: "data", date: '2022-07-15T12:25:00.000Z'},
{id: 4445, data: "data", date: '2022-07-15T12:25:00.000Z'},
{id: 4444, data: "data", date: '2022-07-15T12:25:00.000Z'},
],
[
{id: 1117, data: "data", date: '2022-07-15T12:25:00.000Z'},
{id: 1116, data: "data", date: '2022-07-15T12:25:00.000Z'},
{id: 1115, data: "data", date: '2022-07-15T12:25:00.000Z'},
{id: 1114, data: "data", date: '2022-07-15T12:25:00.000Z'},
{id: 1113, data: "data", date: '2022-07-07T12:25:00.000Z'},
]
]

预期输出:

我不知道它是否非常清楚,但我需要它们保持相同的顺序,如果它们不共享相同的时间戳,那么就单独呆着。

const results = 
[
[
{id: 3337, data: "data", date: '2022-08-02T12:25:00.000Z'},
{id: 3336, data: "data", date: '2022-08-02T12:24:00.000Z'},
{id: 3335, data: "data", date: '2022-08-02T12:23:00.000Z'},
],
[
{id: 3334, data: "data", date: '2022-08-02T12:22:00.000Z'}
],
[
{id: 4449, data: "data", date: '2022-07-15T12:25:00.000Z'},
{id: 4448, data: "data", date: '2022-07-15T12:25:00.000Z'},
{id: 4447, data: "data", date: '2022-07-15T12:25:00.000Z'},
],
[
{id: 4446, data: "data", date: '2022-07-15T12:25:00.000Z'},
{id: 4445, data: "data", date: '2022-07-15T12:25:00.000Z'},
{id: 4444, data: "data", date: '2022-07-15T12:25:00.000Z'},
],
[
{id: 1117, data: "data", date: '2022-07-15T12:25:00.000Z'},
{id: 1116, data: "data", date: '2022-07-15T12:25:00.000Z'},
],
[
{id: 1115, data: "data", date: '2022-07-15T12:25:00.000Z'},
{id: 1114, data: "data", date: '2022-07-15T12:25:00.000Z'},
{id: 1113, data: "data", date: '2022-07-07T12:25:00.000Z'},
],
]

您可以使用slice()进行

let data = 
[
[
{id: 3337, data: "data", date: '2022-08-02T12:25:00.000Z'},
{id: 3336, data: "data", date: '2022-08-02T12:24:00.000Z'},
{id: 3335, data: "data", date: '2022-08-02T12:23:00.000Z'},
{id: 3334, data: "data", date: '2022-08-02T12:22:00.000Z'}
],
[
{id: 4449, data: "data", date: '2022-07-15T12:25:00.000Z'},
{id: 4448, data: "data", date: '2022-07-15T12:25:00.000Z'},
{id: 4447, data: "data", date: '2022-07-15T12:25:00.000Z'},
{id: 4446, data: "data", date: '2022-07-15T12:25:00.000Z'},
{id: 4445, data: "data", date: '2022-07-15T12:25:00.000Z'},
{id: 4444, data: "data", date: '2022-07-15T12:25:00.000Z'},
],
[
{id: 1117, data: "data", date: '2022-07-15T12:25:00.000Z'},
{id: 1116, data: "data", date: '2022-07-15T12:25:00.000Z'},
{id: 1115, data: "data", date: '2022-07-15T12:25:00.000Z'},
{id: 1114, data: "data", date: '2022-07-15T12:25:00.000Z'},
{id: 1113, data: "data", date: '2022-07-07T12:25:00.000Z'},
]
]
let result = data.map(d => {
let index = 0
let arr =[]
while(index < d.length){
arr.push(d.slice(index,index+3))
index = index + 3
}
return arr
})
console.log(result.flat())

最新更新