看到一个需求,将一个数组按照8个8个拆分,心想用generator也可以做,最后的版本感觉还是挺优雅的:
function* gen(arr) {
const copyArr = [...arr];
if(copyArr.length > 8) {
yield copyArr.splice(0, 8);
yield* gen(copyArr);
} else {
yield copyArr;
}
}
const arr = [
1, 2, 3, 4, 5, 6, 7, 8,
9, 10, 11, 12, 13, 14, 15, 16,
666, 777
];
const g = gen(arr);
console.log([...g]);