请考虑一个数组,如:
arrayAll = [1,2,3,4,5,6,7,8,9]
Run Code Online (Sandbox Code Playgroud)
是否有一个允许进行分区以获取的包:
arrayALLPartionned = [[1,2,3],[4,5,6],[7,8,9]]
Run Code Online (Sandbox Code Playgroud)
我可以看到如何使用for循环执行此操作,但如果存在,则会欣赏"预制"功能.
我试图找到一种简洁的方法,根据谓词将对象数组分成数组.
var arr = [
{id: 1, val: 'a'},
{id: 1, val: 'b'},
{id: 2, val: 'c'},
{id: 3, val: 'a'}
];
//transform to below
var partitionedById = [
[{id: 1, val: 'a'}, {id: 1, val:'b'}],
[{id: 2, val: 'c'}],
[{id: 3, val: 'a'}
];
Run Code Online (Sandbox Code Playgroud)
我看到这个问题,使用普通JS提供了一个很好的概述,但我想知道是否有更简洁的方法来使用lodash做到这一点?我看到了分区功能,但它只将数组拆分为2组(需要它是'n'个分区).groupBy通过键将它分组为一个对象,我正在寻找相同但在数组中(没有键).
是否有一种更简单的方法可以嵌套几个lodash函数来实现这一目标?