Как мне превратить элементы массива в формулу в Javascript - PullRequest
0 голосов
/ 30 октября 2018

Элементы массива математической формулы выглядят так:

a = [1,'+',2,'-',3,'*',4,'/',5];

Как мне выполнить все арифметические действия между этими числами. Элементы массива могут быть разными, потому что они добавляются динамически. (Числа - все четные элементы, знаки - нечетные. Первый и последний элементы всегда являются числами.)

Было бы не сложно, если бы мне не нужно было расставлять приоритеты действий (/,*,+,-). Я пытался использовать метод splice(), но что-то идет не так. Может быть, я могу как-то отсортировать элементы по приоритету математических действий?

Ответы [ 2 ]

0 голосов
/ 30 октября 2018

Решение заключается в том, чтобы привести формулу в форму и выполнить ее так, как это делается в javascript. Вы можете настроить решение под свои нужды, но это подойдет для вашего случая

var a = [1,'+',2,'-',3,'*',4,'/',5];
var b = a.join('');
eval(b);
0 голосов
/ 30 октября 2018

var a = [1,'+',2,'-',3,'*',4,'/',5];

console.log(a.join(' '), '=', eval(a.join('')));

eval () документы

ПРЕДУПРЕЖДЕНИЕ Никогда не используйте eval!

...