function getResult (array, num) {
const result = [];
const cnt = array.length % num == 0 ? array.length / num : (Math.floor(array.length / num) + 1);
for (let i = 0; i < cnt; i++) {
let item = []
for (let j = 0; j < num; j++) {
let index = i * num + j;
if (index < array.length) {
if (i % 2 == 0) {
item.push(array[index])
} else {
item.unshift(array[index])
// 出来的结果是下图环形的(项目中需要,也可以不区分)
}
}
}
result.push(item)
}
return result;
}
let arr=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]
console.log(getResult(arr,5))
/**
* 数组分片
* @param {*} array
* @param {*} num
* @return {*}
*/
const ArrayCutting = (array, num) => {
// 将数组按照指定的长度分割成多个子数组
const result = Array.from({ length: Math.ceil(array.length / num) }, (_, i) => {
// 计算子数组的起始位置
const start = i * num;
// 计算子数组的结束位置
const end = start + num;
// 过滤掉空元素
return array.slice(start, end).filter(Boolean);
});
// 返回分割后的子数组
return result;
};
