![如何将数组 [1,2,3,4,5,6,7,8,9] 切分成三个连续子数组:[1,4,7],[2,5,8],[3,6,9]?](https://img.php.cn/upload/article/001/246/273/173113812412467680.jpg)
js数组问题:将数组切分成连续子数组
问题:
数组[1,2,3,4,5,6,7,8,9]如何分成三个连续子数组:[1,4,7],[2,5,8],[3,6,9]?
回答:
给出前提:连续子数组。
是否需要连续子数组,这决定了具体实现方法不同。
连续子数组实现方法:
将数组分成三个等长的子数组,每个子数组包含三个连续元素。
const arr = [1,2,3,4,5,6,7,8,9];
const subarrays = [];
for (let i = 0; i < arr.length; i += 3) {
subarrays.push(arr.slice(i, i + 3));
}
console.log(subarrays); // [[1,2,3],[4,5,6],[7,8,9]]非连续子数组实现方法(未给出前提):
用三个变量依次表示三个子数组,循环遍历原始数组,根据奇偶性将元素加入相应的子数组。
const arr = [1,2,3,4,5,6,7,8,9];
let subArr1 = [];
let subArr2 = [];
let subArr3 = [];
for (let i = 0; i < arr.length; i++) {
if (i % 3 === 0) {
subArr1.push(arr[i]);
} else if (i % 3 === 1) {
subArr2.push(arr[i]);
} else {
subArr3.push(arr[i]);
}
}
console.log(subArr1, subArr2, subArr3); // [1,4,7], [2,5,8], [3,6,9]










