【发布时间】:2014-09-09 09:17:06
【问题描述】:
我有一个计算移动平均线的函数。在我使用的数组中,有一个组变量(部门)在当前函数中被模糊在一起。我想改为按组进行 ma 计算。这甚至可能吗(优雅,我可能会补充。我可能会用我的初学者知识强行强制它......)?我稍后会(按部门)进行一些过滤,但我希望先完成一次计算,然后再完成。
有人有优雅的解决方案吗?如果有比使用地图更好的方法来做到这一点,那也没关系。
var movingWindowAvg = function (arr, step) { // ma size = step
return arr.map(function (_, idx) {
var wnd = arr.slice(idx, idx + step);
var result = d3.sum(wnd.map(function(d) { return d.cases; })) / wnd.length; if (isNaN(result)) { result = _; };
var nBeds= d3.sum(wnd.map(function(d) { return d.Beds; })) / wnd.length; if (isNaN(platser)) { platser = _; };
var avd = wnd[0].Department;
if (wnd.length < step) {
console.log(wnd)
}
var tmpDate = wnd[wnd.length-1].datum; //Test to get the date-markers correct
return {Cases: result, Date: tmpDate, Beds: nBeds, Department: avd, };
});
};
【问题讨论】:
标签: javascript arrays d3.js grouping moving-average