我试图从1个数组创建4个数组,条件是元素必须均匀分布。
const users = [1,2,3,4,5,6];
const userBatch = new Array(4).fill([]);
users.forEach((user, index) => {
userBatch[index % 4].push(user);
});
预期产量为userBatch
[
[1, 5],
[2, 6],
[3],
[4]
]
但没有发生,userBatch
的值为
[
[1, 2, 3, 4, 5, 6]
[1, 2, 3, 4, 5, 6]
[1, 2, 3, 4, 5, 6]
[1, 2, 3, 4, 5, 6]
]
此代码有什么错误?
-更新 它以这种方式工作
const users = [1,2,3,4,5,6];
const userBatch = [[],[],[],[]];
users.forEach((user, index) => {
userBatch[index % 4].push(user);
});
有人可以解释为什么吗?
答案 0 :(得分:1)
使用array.from并定义数字以创建嵌套数组的数量
const users = [1, 2, 3, 4, 5, 6];
const userBatch = Array.from({
length: 4
}, (v, i) => []);
users.forEach((user, index) => {
userBatch[index % 4].push(user);
});
console.log(userBatch)