将数组拆分为均匀分布的数组

时间:2020-09-14 14:10:05

标签: javascript node.js arrays

我试图从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);
});

有人可以解释为什么吗?

1 个答案:

答案 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)