如何将数组转换为复杂数组 JavaScript?
javascriptweb developmentobject oriented programming更新于 2025/10/15 15:40:17
假设,我们需要编写一个函数,该函数接受一个数字数组和数字 n,其中 n >= 数组中的任意数字。如果数组连续元素的总和超过数字 n,则需要该函数将数组拆分为子数组。
例如 −
// 如果原始数组为: const arr = [2, 1, 2, 1, 1, 1, 1, 1]; // 并且数字 n 为 4 // 那么输出数组应该是: const output = [ [ 2, 1 ], [ 2, 1, 1 ], [ 1, 1, 1 ] ];
让我们来编写该函数的代码 −
示例
const arr = [2, 1, 2, 1, 1, 1, 1, 1];
const splitArray = (arr, num) => {
return arr.reduce((acc, val, ind) => {
let { sum, res } = acc;
if(ind === 0){
return {sum: val, res:[[val]]};
};
if(sum + val <= num){
res[res.length-1].push(val);
sum +=val;
}else{
res.push([val]);
sum = val;
};
return { sum, res };
}, {
sum: 0,
res: []
}).res;
};
console.log(splitArray(arr, 4));
console.log(splitArray(arr, 5));
输出
控制台中的输出将是 −
[ [ 2, 1 ], [ 2, 1, 1 ], [ 1, 1, 1 ] ] [ [ 2, 1, 2 ], [ 1, 1, 1, 1, 1 ] ]
相关文章
有用资源
javascript 参考教程 - 该教程包含有关 javascript 的更多信息:https://www.cainiaomax.com/javascript/

