块元数据元素

Hay*_*yan 5 javascript arrays split

我怎么能按元素块数组?

例如,lodash具有此功能,按长度分块数组

_.chunk(['a', 'b', 'c', 'd'], 2);
// => [['a', 'b'], ['c', 'd']]

_.chunk(['a', 'b', 'c', 'd'], 3);
// => [['a', 'b', 'c'], ['d']]
Run Code Online (Sandbox Code Playgroud)

所以我有一个这样的数组['a','b','*','c']我可以做类似的事情

chunk(['a', 'b', '*', 'c'], '*')
Run Code Online (Sandbox Code Playgroud)

这会给我

[['a', 'b'], ['c']]
Run Code Online (Sandbox Code Playgroud)

它类似于字符串拆分数组

Fal*_*aly 5

你可以使用array.Reduce:

var arr = ['a', 'b', '*', 'c'];
var c = '*';
function chunk(arr, c) {
    return arr.reduce((m, o) => {
        if (o === c) {
            m.push([]);
        } else {
            m[m.length - 1].push(o);
        }
        return m;
    }, [[]]);
}
console.log(chunk(arr, c));
Run Code Online (Sandbox Code Playgroud)