JSFiddle - React, Tailwind, and code Playground
by rafalry
HTML
<script src="http://cdnjs.cloudflare.com/ajax/libs/mathjs/0.21.0/math.js" type="text/javascript"></script>
JavaScript
var math = mathjs();
var node = math.parse("2 + cos(180)");
DFS(node);
var code = node.compile(math);
var result = code.eval();
console.log('node', node.toString());
console.log('code', code);
console.log('result', result);
function DFS (node) {
if (node.object && node.object.name === "sin") {
var oldParam = node.params[0];
var newParam = mathjs().parse("0 deg");
newParam.expr.value = oldParam;
node.params[0] = newParam.expr;
DFS(node.params[0]);
} else if (node.fn) {
node.params.forEach(DFS);
}
}