我正在尝试使我的工作自动化,并且将一个大数组分解成多个较小的数组,如下所示:
function splitArray(arr, firstbreak, secondBreak, thirdBreak, fourthBreak) {
var split1 = arr.slice(0, firstbreak);
var split2 = arr.slice(firstbreak, firstbreak + secondBreak);
var split3 = arr.slice(firstbreak + secondBreak, firstbreak + secondBreak + thirdBreak);
var split4 = arr.slice(firstbreak + secondBreak + thirdBreak, firstbreak + secondBreak + thirdBreak + fourthBreak);
console.log(split1); //[1,2,3]
console.log(split2); //[4,5,6,7]
console.log(split3); //[8]
console.log(split4); //[9,10]
}
splitArray([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 2, 4, 3, 1, 2)
我该如何自动化?我尝试了for循环,但有点卡住了,我看不出能够得到重复的公式...
最佳答案
您可以收集长度并映射零件阵列。
function splitArray(array, ...lengths) {
return lengths.map((i => l => array.slice(i, i += l))(0));
}
console.log(splitArray([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 2, 4, 3, 1, 2))
.as-console-wrapper { max-height: 100% !important; top: 0; }