gpt4 book ai didi

javascript - 当 lodash 有余数时,如何将排序的数组排序到列中?

转载 作者:行者123 更新时间:2023-12-03 14:05:13 24 4
gpt4 key购买 nike

我有一个按字母顺序排列的值数组:

const arr = ['abcdefghijkl'].split('');

我想在 1 个平面集合中按字母顺序按列获取字母的顺序。

例如 3 列:

['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']

问题:对于有余数的集合,我该如何处理这种情况?我的方法完全不对吗?

最佳答案

我觉得你有问题


Math.ceil(a.length/cols)


我假设你的预期形状不对 - 因为你正在进行列优先排序,所以你真的应该期待这个解决方案:


['a','f','k',
'b','g','l',
'c','h','m',
'd','我',,
'e','j',,]

(Math.ceil 将为您提供)。

无论哪种方式,您都需要那里的天花板来固定二维阵列的最终形状。您的代码中确实存在错误。


如果您的预期结果没有关闭,并且您实际上是在寻找从字符串“中间”开始的“溢出”,那么您的问题没有完美的解决方案 - 您必须手动找出先溢出,然后在删除那部分字符串后使用优雅的解决方案

关于javascript - 当 lodash 有余数时,如何将排序的数组排序到列中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49289410/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com