sen*_*nty 3 javascript arrays sorting
假设你有一个数组,并希望将它除以3的块.如果数组是..
let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13];
Run Code Online (Sandbox Code Playgroud)
......新阵列将是
let newArr = [1, 4, 7, 10, 13, 2, 5, 8, 11, 3, 6, 9, 12]
// In other words:
1 2 3
4 5 6
7 8 9
10 11 12
13
Run Code Online (Sandbox Code Playgroud)
分块部分应该是这个代码(如果排序的话newArr):
let chunkedArr = _.chunk(_.toArray(newArr), 3);
Run Code Online (Sandbox Code Playgroud)
... ...但是我无法弄清楚如何排序arr,以newArr能够在块正确的顺序.处理此类案件的正确方法是什么?
请注意,整数只是伪,我将使用适当的数组对象.
一种选择是使用ES6 reduce将数组分组为多维数组.使用concat扁平化的多维数组.
[].concat(...) - 基本上使多维数组变平.从空数组开始[],concat每个辅助数组.使用spread运算符(...)重复每个辅助数组和concat每个辅助数组.
let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13];
let groups = 3;
let newArr = [].concat(...arr.reduce((c, v, i) => {
let k = i % groups;
c[k] = c[k] || [];
c[k].push(v);
return c;
}, []));
console.log(newArr);Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
124 次 |
| 最近记录: |