【发布时间】:2023-04-09 09:54:02
【问题描述】:
我有一个按字母顺序排列的值数组:
const arr = ['abcdefghijkl'].split('');
我想按字母顺序按 1 个平面集合中的列获取字母的顺序。
例如3 cols:
['a','e','i',
'b','f','j',
'c','g','k',
'd','h','l']
我们可以使用 lodash 之类的 fp lib 轻松做到这一点:
const arr = 'abcdefghijkl'.split('');
function orderByCols(a, cols) {
return flatten(zip(...chunk(a, (a.length/cols))))
}
let output = orderByCols(arr, 3);
直播代码: https://stackblitz.com/edit/order-by-cols
当我们对数组进行分块并且有余数时,问题就出现了:
const remainderArr = ['abcdefghijklm'].split(''); // added 'm'
这会让一切变得混乱。
预期的输出如下所示:
['a','f','j',
'b','g','k',
'c','h','l',
'd','i','m',
'e']
问题:对于有余数的集合,我该如何处理这种情况?我的方法完全关闭了吗?
【问题讨论】:
-
只有 lodash 解决方案?
-
当然不是。但只是试图弯曲 lib 以进行锻炼
标签: javascript lodash