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)
它类似于字符串拆分数组
你可以使用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)