32 lines
671 B
JavaScript
32 lines
671 B
JavaScript
const math = require('mathjs');
|
|
|
|
|
|
module.exports = {
|
|
extractFromEquation: (equation)=>{
|
|
equation = equation || '';
|
|
return math.parse(equation);
|
|
},
|
|
extractVariableNames: (mathNode) => {
|
|
let variableNames = new Set();
|
|
|
|
function traverse(node) {
|
|
if (node.type === 'SymbolNode') {
|
|
variableNames.add(node.name);
|
|
}
|
|
|
|
for (const key in node.args) {
|
|
traverse(node.args[key]);
|
|
}
|
|
|
|
if (node.content) {
|
|
traverse(node.content);
|
|
}
|
|
}
|
|
|
|
traverse(mathNode);
|
|
|
|
return Array.from(variableNames);
|
|
}
|
|
|
|
|
|
} |