【发布时间】:2018-09-13 18:51:24
【问题描述】:
看似简单的任务,但行不通。我有一个已知长度的数组(比如 9)和一个块大小(比如 3)。数组总是可以被那个块整除,不需要测试。初试:
const chunked = [];
const arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
for(let i=0; i<3; i++) {
chunked[i] = arr.slice(i*3, 3);
}
console.log(chunked);
但后来意识到slice() 可能会覆盖它的输入,所以:
const chunked = [];
const arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
for(let i=0; i<3; i++) {
let temp = arr.slice();
chunked[i] = temp.slice(i*3, 3);
}
console.log(chunked);
但仍然只创建第一个块...我的错误在哪里?
【问题讨论】:
-
slice的第二个参数不是长度,而是结束索引。 -
哦,是的,没有意识到这一点。这工作
for(let i=0; i<3; i++) { let temp = res.slice(); res2[i] = temp.slice(i*3, (i+1)*3); }非常感谢 -
我知道类似的 SO 问题,但这些似乎太复杂了。在我的评论中,这种方式似乎更简单、更容易理解
标签: javascript