Показать сообщение отдельно
  #17 (permalink)  
Старый 12.01.2015, 01:02
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 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);
Ответить с цитированием