@Ventus

Как преобразовать строку в оператор?

Имею строковое значение:
const operator = '+';

Каким образом преобразовать operator в обыкновенный оператор сложения (то есть преобразовать строковое значение константы в знак сложения)? Позволяет ли язык JS сделать что-то подобное или остается пользоваться switch?
  • Вопрос задан
  • 68 просмотров
Решения вопроса 2
locky_yotun
@locky_yotun Куратор тега JavaScript
Я видел некоторый джаваскрипт
const operator = '+';
const a = 42;
const b = 11;
const result = eval(a + operator + b);
console.log('result: ', result);

но лучше наверное все же switch ))
Ответ написан
IonDen
@IonDen Куратор тега JavaScript
JavaScript developer. IonDen.com
const a = "10";
const b = "20";
const operator = "+";

const formula = a + operator + b;

console.log(eval(formula)); // 30


Помните о том что `eval()` - опасная штука. Может выполнить все что угодно.

https://jsfiddle.net/c9L4j1bq/
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@iddqda
еще можно сделать как в питоне
d = {'+': (a,b) => a+b, '-': (a,b) => a-b }
const sum = '+'
d[sum](123,321)
444

const minus = '-'
d[minus](123,321)
-198


хотя это тот же свич по сути
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы