Skip to content

Instantly share code, notes, and snippets.

@tstpierre
Created March 7, 2014 17:44
Show Gist options
  • Save tstpierre/9416230 to your computer and use it in GitHub Desktop.
Save tstpierre/9416230 to your computer and use it in GitHub Desktop.
<!DOCTYPE html>
<html>
<head>
<meta name="description" content="[add your bin description]" />
<meta charset="utf-8">
<title>JS Bin</title>
<script src="http://cdnjs.cloudflare.com/ajax/libs/mathjs/0.18.1/math.min.js" type="text/javascript"></script>
</head>
<body>
</body>
</html>
var math = mathjs();
var entity = {
val1: 3,
val2: 2,
val3: 6,
formula: "{0} * {1}",
replacements: "val1,val2"
};
var args = entity.formula.match(/\{(\d+)\}/g);
var rpls = entity.replacements.split(",");
var compiledFormula = entity.formula;
console.log("Arguments from entity: " + args);
console.log("Replacements from entity: " + rpls);
args.forEach(function(a) {
var index = parseInt(a.match(/(\d+)/g)[0], 10);
compiledFormula = compiledFormula.replace(a, entity[rpls[index]]);
});
var result = math.eval(compiledFormula);
console.log(compiledFormula + " = " + result);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment