我正在尝试完成这个练习:
挑战是实现一个函数,将数组中所有连续的数字加在一起,并将它们推入一个新的数组中。例如: sumConsecutives([1,1,2,1,1,1,1,2,1,1,1]);
// -> [2,2,4,2,3]
我的想法是将数组分成一个二维数组。所以对于上面的例子: [[1,1],[2],[1,1,1,1],[2],[1,1,1]]
然后遍历并使用 reduce
函数。
我已经尝试过使用 while
循环和 push
到一个临时变量中,如果下一个数字不同,则将其推送,但没有成功。
有什么好的方法可以实现这一点吗?
var reducer = a => a.reduce((p,c,i,a) => (i === 0 ? p[0] = c : c == a[i-1] ? p[p.length-1] += c : p[p.length] = c,p),[])
- Redu