Jump to content

Averages/Simple moving average: Difference between revisions

Edited fiddle to produce correct results.
(Edited fiddle to produce correct results.)
Line 1,897:
 
===Using reduce/filter===
{{incorrect|Javascript|routine is called with a list of multiple numbers rather than being called with individual numbers in succession.}}
[http://jsfiddle.net/79xe381e/ JS Fiddle]
 
<lang javascript>// single-sided
Array.prototype.simpleSMA=function(N) {
return this.map(function(x,i,v) {
function(el,index, _arr) {
if(i<N-1) return NaN;
return _arr.filter(
return v.filter(function(x2,i2) { return i2<=i && i2>i-N; }).reduce(function(a,b){ return a+b; })/N;
function(x2,i2) {
}); };
return i2 <= index && i2 > index - N;
})
.reduce(
function(current, last, index, arr){
return (current + last);
})/index || 1;
});
};
 
g=[0,1,2,3,4,5,6,7,8,59,410];
console.log(g.simpleSMA(3));
console.log(g.simpleSMA(5))</lang>;
console.log(g.simpleSMA(g.length));</lang>
{{out}}
<pre>
<pre>[NaN, NaN, 2, 3, 4, 5.666666666666667, 6, 5.666666666666667]
[NaN1, NaN1, NaN1.5, NaN2, 32.25, 42.4, 2.5, 52.5714285714285716, 2.625, 2.6666666666666665, 2.7]</pre>
[1, 1, 1.5, 2, 2.5, 3, 3.3333333333333335, 3.5714285714285716, 3.75, 3.888888888888889, 4]
[1, 1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5, 5.5]
</pre>
 
=={{header|Julia}}==
Anonymous user
Cookies help us deliver our services. By using our services, you agree to our use of cookies.