11.01.2015, 23:32
|
Интересующийся
|
|
Регистрация: 11.01.2015
Сообщений: 11
|
|
Сообщение от bes
|
потому как влом искать
|
не надо ничего искать, надо понимать как работает, этого достаточно, чтобы не посадить производительность.
|
|
11.01.2015, 23:33
|
Интересующийся
|
|
Регистрация: 11.01.2015
Сообщений: 11
|
|
Сообщение от bes
|
тем более есть алтернативные варианты
|
Ага, тонны говнокода и лапши
|
|
12.01.2015, 00:03
|
|
Профессор
|
|
Регистрация: 22.03.2012
Сообщений: 3,744
|
|
Сообщение от dkstra
|
не надо ничего искать, надо понимать как работает, этого достаточно, чтобы не посадить производительность.
|
я про то и говорил - не хочу даже вникать, нет eval - нечего вклинить, даже, если и так нечего вклинить, вникнуть можно - никто не спорит, говорить на простых случаях особого смысла нет
насчёт производительности - приводи бенчмарк
Сообщение от dkstra
|
Ага, тонны говнокода и лапши
|
ну расскажи поподробнее, может в тех 3 строчках действительно говнокод
|
|
12.01.2015, 00:04
|
Интересующийся
|
|
Регистрация: 11.01.2015
Сообщений: 11
|
|
Сообщение от bes
|
ну расскажи поподробнее, может в тех 3 строчках действительно говнокод
|
в каких 3-х строчках?
|
|
12.01.2015, 00:05
|
|
Профессор
|
|
Регистрация: 22.03.2012
Сообщений: 3,744
|
|
Сообщение от dkstra
|
в каких 3-х строчках?
|
в альтернативных вариантах, которые привели до твоего
|
|
12.01.2015, 00:08
|
Интересующийся
|
|
Регистрация: 11.01.2015
Сообщений: 11
|
|
Сообщение от bes
|
в альтернативных вариантах, которые привели до твоего
|
Да это убожество вообще. Чтобы реализовать только лишь(!) операцию сложения там наговняли кучу кода. А ты напиши, и убедись, как это будет выглядеть хотя бы на 4-х, как в моем втором примере.
|
|
12.01.2015, 01:02
|
|
Профессор
|
|
Регистрация: 22.03.2012
Сообщений: 3,744
|
|
Сообщение от dkstra
|
Да это убожество вообще. Чтобы реализовать только лишь(!) операцию сложения там наговняли кучу кода. А ты напиши, и убедись, как это будет выглядеть хотя бы на 4-х, как в моем втором примере.
|
с учётом кривоватой регулярки, примерно так
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);
|
|
12.01.2015, 01:25
|
Интересующийся
|
|
Регистрация: 11.01.2015
Сообщений: 11
|
|
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' ]
Да и вообще, одного взгляда на два варианта должно быть достаточно, чо ты тужишься, я хз.
|
|
12.01.2015, 02:16
|
|
Профессор
|
|
Регистрация: 13.03.2013
Сообщений: 1,572
|
|
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])));
}
|
|
12.01.2015, 18:25
|
|
Профессор
|
|
Регистрация: 22.03.2012
Сообщений: 3,744
|
|
Сообщение от dkstra
|
bes,
Это не эквивалентный код
|
Сообщение от dkstra
|
Да и вообще, одного взгляда на два варианта должно быть достаточно, чо ты тужишься, я хз.
|
нет, ты просто придумываешь задачи на ходу
я к тому что не такой уж страшный получился чёрткод, как ты его малевал
идея была в том, чтобы юзать eval только в крайних случаях, и это был ответ на твой вопрос, почему никто не сэвалил, юзать или не юзать - каждый выбирает сам
попробуй лучше решить свою последнюю задачу без eval
|
|
|
|