Цитата:
|
Цитата:
|
Цитата:
насчёт производительности - приводи бенчмарк Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
function calc(op1, op, op2){ var res, op1 = +op1; op2 = +op2; switch ( op ) { case "+": res = op1 + op2; break; case "-": res = op1 - op2; break; case "*": res = op1 * op2; break; case "/": res = op1 / op2; break; } return res; } var mas = "example 5-15 =twenty, example 5+15 =twenty, example 15/5 =twenty, example 5*15 =twenty".split(","); var res = mas.map(function (value) { return value.replace(/.*?(\d+)(.*?)(\d+).*/, function (str, p1, p2, p3) { return calc(p1, p2, p3); }); }); alert(res); |
bes,
Это не эквивалентный код "example 5-0+5 =twenty, example 5+15 =twenty, example 15/5 =twenty, example 5*15 =twenty" .split(",") .forEach(function(str){ alert(eval(str.replace(/[^\d+*/-]/g, ""))) }) function calc(op1, op, op2){ var res, op1 = +op1; op2 = +op2; switch ( op ) { case "+": res = op1 + op2; break; case "-": res = op1 - op2; break; case "*": res = op1 * op2; break; case "/": res = op1 / op2; break; } return res; } var mas = "example 5-0+5 =twenty, example 5+15 =twenty, example 15/5 =twenty, example 5*15 =twenty".split(","); var res = mas.map(function (value) { return value.replace(/.*?(\d+)(.*?)(\d+).*/, function (str, p1, p2, p3) { return calc(p1, p2, p3); }); }); alert(res); //>>>> 10 //>>>> 20 //>>>> 3 //>>>> 75 //>>>> [ '5', '20', '3', '75' ] Да и вообще, одного взгляда на два варианта должно быть достаточно, чо ты тужишься, я хз. |
bes,
function calc(arr) { var a = +arr[1], b = +arr[3]; return { '+': a + b, '-': a - b, '*': a * b, '/': a / b } [arr[2]]; } var mas = "example 5-15 =twenty, example 5+15 =twenty, example 15/5 =twenty, example 5*15 =twenty".split(","); for (var i = 0; i < mas.length; i++) { alert(calc(/.*?(\d+)(.)(\d+)/.exec(mas[i]))); } |
Цитата:
Цитата:
я к тому что не такой уж страшный получился идея была в том, чтобы юзать eval только в крайних случаях, и это был ответ на твой вопрос, почему никто не сэвалил, юзать или не юзать - каждый выбирает сам попробуй лучше решить свою последнюю задачу без eval |
Часовой пояс GMT +3, время: 14:53. |