我需要執行一個數組的累加和。在某些情況下,我需要它是直線前進,並發現該片段到偉大的工作:數組的累積和,在另一個數組中的條件
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