这是一个初学者的问题。
我正在尝试将以下值分配到三个不同的数组中。
var values = [1,2,3,4,5,6,7,8];
其结果将是:[[1,4,7][2,5,8][3,6]]
...所以基本上就像连续向三个孩子分发糖果,直到糖果用完为止。我环顾四周,似乎有人问起[[1,2,3],[4,5,6],[7,8]]这样的数组块,但这有点不同。
这些是我的变量:
var values = [1,2,3,4,5,6,7,8];
var numberOfArrays = 3;
var parentArray = [];
我不知道如何开始循环播放。我是否首先遍历我的值?
for(var i = 0; i < values.length; i++) {
// Code here?
}
请帮助。我不知道如何组织这种逻辑:/
答案 0 :(得分:1)
您可以将reminder operator %
用于右边的内部数组,并将值推入其中。
var values = [1, 2, 3, 4, 5, 6, 7, 8],
gap = 3,
result = values.reduce((r, v, i) => {
r[i % gap] = r[i % gap] || [];
r[i % gap].push(v);
return r;
}, []);
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }