项目场景:
提示:这里简述项目相关背景:
例如: 将数组的元素两两分组,任意倍数分组
直接上代码
具体步骤如下:
/**
* 实现数组的配对组合
* @param {*} list 操作数组
* @param {*} times 倍数
* @returns 目标数组
*/
const divisionArr = (list, times) => {
const mapTimes = Math.floor(list.length / times);
const result = [];
for (let i = 0; i < mapTimes; i++) {
const arr = [];
for (let j = 0; j < times; j++) {
arr.push(list[i * times + j]);
}
result.push(arr);
}
if (list.length % times) {
for (let k = 1; k <= list.length % times; k++) {
result.push([list.at(-k)]);
}
}
return result;
};
// 测试代码:
const arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
divisionArr(arr, 4); // [[1, 2, 3, 4], [5, 6, 7, 8], [9]]
ps:
提示:没有进行边界判断:
例如:没有使用ts,并不能对输入情况进行判断,读者可自行完善。