Package Exports
- trend-steps
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (trend-steps) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
trend-steps
reduces math series to a square curve of its trend steps
Reduce a math series to a square curve like
+3 _ |
+2 | | |
+1 _| | _|
0 _ | |__ __|
-1 |_ |
-2 |_ |
-3 |_|
Use it as an array reducer.
const toTrendSteps = require('trend-steps')
const input = [
1.2, 1.4, 1.5, 1.6, 1.5, 1.4, 1.4, 1.2
]
const output = input.reduce(toTrendSteps(), [])
In this case output will be
[
{ value: 1.2, level: 0 },
{ value: 1.4, level: 2 },
{ value: 1.5, level: 3 },
{ value: 1.6, level: 4 },
{ value: 1.5, level: -1 },
{ value: 1.4, level: -2 },
{ value: 1.4, level: 0 },
{ value: 1.2, level: -2 }
]
Note that the minimum delta between two consecutive entries is 0.1
, and it is used as unit.
In fact starting from first to second element, the level is increased by 2 units.
It accepts an options parameter, which defaults to { tolerance: 0.001 }
, where
tolerance is the criteria used to compare floats to check if they are equal. For instance, to decrease tolerance, do
const output = input.reduce(toTrendSteps({ tolerance: 0.0001 }), [])