JS:将列表转换为一个具有多个列表的列表,该列表在一些索引之间包含所有对象



我不能很好地描述我的问题。所以我给你举个例子:

我有一个对象列表:[o0,o1,o2,…],并且想要生成一个该列表具有多个列表,该列表具有索引i5-i5+4之间的所有对象。

结果看起来像:

[[o0...o4],[o5...o8],...]

您可以通过分块来实现这一点。你可以使用像lodash这样的流行库,或者实现你自己的函数:

function chunkArray(array, chunkSize) {
return Array.from(
{ length: Math.ceil(array.length / chunkSize) },
(_, index) => array.slice(index * chunkSize, (index + 1) * chunkSize)   
);
}

然后你的代码将看起来像

const array = ['o1', 'o2', 'o3', 'o4', ..., 'o10'];
const result = chunkArray(array, 4);

试试这个代码:

let list = [o0, o1, o2, o3, o4, ....];
let result = [];
let i =0;
while(i < list.length ){
let obj = [];
for(let j = 0; j < 4; ; j++){
if( i >= list.length ){
break;
}
obj.push(list[i]);
i++;
}
result.push(obj);
}
console.log(result);

最新更新