【发布时间】:2018-12-11 02:00:06
【问题描述】:
我正在使用这个函数来创建一个数组块:
function chunkArray(myArray, chunk_size) {
let results = [];
while (myArray.length) {
results.push(myArray.splice(0, chunk_size));
}
return results;
}
但是,如果我们假设原始数组是 [1, 2, 3, 4, 5, 6] 并且我将它分成 3 个部分,我将得到以下结果:
[
[1, 2],
[3, 4],
[5, 6]
]
但是,我希望它分块成在三者之间跳跃的数组,例如:
[
[1, 4],
[2, 5],
[3, 6]
]
最好的方法是什么?
【问题讨论】:
-
"块成在两者之间跳跃的数组" ?你能解释一下你的意思吗?乐于助人,但我很困惑。其他的?
-
@zfrisch 我在原始帖子中的措辞混乱,只是对其进行了编辑。现在通过示例可能更有意义。
-
const chunkArray = (myArray, chunk_size) => myArray.reduce((p, c, i) => (p[i % chunk_size].push(c), p), Array(chunk_size).fill().map(e => [])); -
是
chunk_size,还是chunk_count,因为虽然代码说的是前者,但问题确实描述的是后者。 -
另外,这个函数的良好版本不应该改变输入数组。
标签: javascript arrays node.js