我需要执行一个数组的累加和。在某些情况下,我需要它是直线前进,并发现该片段到伟大的工作:数组的累积和,在另一个数组中的条件
cumul = sum.reduce(function (a, n) {
a.push((a.length > 0 ? a[a.length-1] : 0) + n);
return a;
}, [initial]);
cumul.shift();
Logger.log(cumul);
当我登录“cumul”我得到的结果,我需要。但是,在其他IF()条件下,我需要执行累计总和,以在包含日期的另一个数组中提供某个条件 - 如果日期为< = X,则不要在此迭代中添加累计总和累计值)。
任何想法如何实现?似乎使用这个累积和的版本是行不通的,但我不确定会有什么其他方法可以解决这个问题。
在此先感谢! G
我的第一个建议是,你凝结两个数据结构合而为一。 'var arr = [{val:7,date:'2014-10-31'},{val:3,date:'2014-11-01'}]'然后遍历一个数据结构。由于'javascript'数组并不是真正的数组,因此这样做不会有性能损失。 – 2014-10-31 10:49:42
对于非条件累积和,请参阅http://stackoverflow.com/questions/20477177/creating-an-array-of-cumulative-sum-in-javascript - 可能重用某些循环结构和辅助函数。 – Paul 2014-10-31 11:05:15