Share Brilliantly
transforming data
let data = [{price:100},{price:101},{price:100},{price:102},{price:102},{price:103},{price:105},{price:102}];
let result = data.map((p,i,data)=>{
let item = {
price:p.price,
ma:null
};
if(i>=2) item.ma = $list(data).last(3).map(p=>p.price).average();
return item;
})
Examples
The second example calculates the moving averages as an array of numbers, and then appends those numbers
onto each record through the map mehtod. This method is generally quicker because the calculation of
the moving average array can make use of prior calculations.
let ma = await import('/lib/time-series/moving-average/v1.0.0/moving-average.mjs');
let data = [{price:100},{price:101},{price:100},{price:102},{price:102},{price:103},{price:105},{price:102}];
let maData = ma.movingAverage(data.map(p=>p.price),3);
let result = data.map((p,i)=>{
return {
price:p.price,
ma:maData[i]
}
})
Try it!
let ma = await import('/lib/time-series/moving-average/v1.0.0/moving-average.mjs');
let data = [{price:100},{price:101},{price:100},{price:102},{price:102},{price:103},{price:105},{price:102}];
let result = $list(data).merge(data=>ma.movingAverage(data.map(p=>p.price),3), 'ma');
Try it!