Показать сообщение отдельно
  #18 (permalink)  
Старый 12.01.2015, 01:25
Интересующийся
Посмотреть профиль Найти все сообщения от dkstra
 
Регистрация: 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' ]


Да и вообще, одного взгляда на два варианта должно быть достаточно, чо ты тужишься, я хз.
Ответить с цитированием