- Added non-default exports when using the ES module format. This allows
import { Parser } from 'expr-eval'
to work in TypeScript. The default export is still available for backward compatibility.
- Added the
if(condition, trueValue, falseValue)
function back. The ternary operator is still recommended if you need to only evaluate one branch, but we're keep this as an option at least for now.
- Better support for arrays, including literals:
[ 1, 2, 3 ]
and indexing:array[0]
- New functions for arrays:
join
,indexOf
,map
,filter
, andfold
- Variable assignment:
x = 4
- Custom function definitions:
myfunction(x, y) = x * y
- Evaluate multiple expressions by separating them with
;
- New operators:
log2
(base-2 logarithm),cbrt
(cube root),expm1
(e^x - 1
),log1p
(log(1 + x)
),sign
(essentiallyx == 0 ? 0 : x / abs x
)
min
andmax
functions accept either a parameter list or a single array argumentin
operator is enabled by default. It can be disabled by passing { operators:{ 'in': false } }
to theParser
constructor.||
(concatenation operator) now supports strings and arrays
- Removed the
if(condition, trueValue, falseValue)
function. Use the ternary conditional operator instead:condition ? trueValue : falseValue
, or you can add it back easily with a custom function.