Files
logos/app/scripts/utils/Math.js
T
2015-07-21 00:56:52 -03:00

50 lines
1.2 KiB
JavaScript

module.exports = {
expr (expr) {
var chars = expr.split('');
var n = [], op = [], index = 0, oplast = true;
n[index] = '';
// Parse the expression
for (var c = 0; c < chars.length; c++) {
if (isNaN(parseInt(chars[c], 10)) && chars[c] !== '.' && !oplast) {
op[index] = chars[c];
index++;
n[index] = '';
oplast = true;
}
else {
n[index] += chars[c];
oplast = false;
}
}
// Calculate the expression
expr = parseFloat(n[0]);
for (var o = 0; o < op.length; o++) {
var num = parseFloat(n[o + 1]);
switch (op[o]) {
case '+':
expr = expr + num;
break;
case '-':
expr = expr - num;
break;
case '*':
expr = expr * num;
break;
case '/':
expr = expr / num;
break;
default:
break;
}
}
return expr;
}
};