在 ruby 中,我可以这样使用chunk_while
:
a = [1,2,4,9,10,11,12,15,16,19,20,21]
b = a.chunk_while {|i, j| i+1 == j }
p b.to_a #=> [[1, 2], [4], [9, 10, 11, 12], [15, 16], [19, 20, 21]]
在 JavaScript 中执行此操作的最佳方法是什么?
您可以创建一个chunkWhile()
函数Array.reduce()
:
const chunkWhile = (predicate, arr) =>
arr.reduce((r, n) => {
let last = r[r.length - 1]
if(!last || !predicate(last[last.length - 1], n)) {
last = []
r.push(last)
}
last.push(n)
return r
}, [])
const a = [1,2,4,9,10,11,12,15,16,19,20,21]
const result = chunkWhile((i, j) => i + 1 === j, a)
console.log(result)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句