@IvanVvV

Почему не происходит замена?

var output = '565^23';
for(var i=0, l=output.length; i<l; i++){
					if(output[i]=='^' && i>0 && i<l-1){
						output[i]='Math.pow('+output[i-1]+','+output[i+1]+')';
						
					        output[i-1]='';
					
						if(i>=l-2 || output[i+2]!=='^'){
						output[i+1]='';
						}
					
					i++;
					}}
alert(output);


Почему не удается присвоить новое значения для output[i] ?
  • Вопрос задан
  • 132 просмотра
Решения вопроса 1
Строки в js неизменяемы по индексу. Лучше собирать новую строку.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Coder321
Так будет работать.
var output = '565^23'.split('');
for (var i = 0, l = output.length; i < l; i++) {
    if (output[i] == '^' && i > 0 && i < l - 1) {
        output[i] = 'Math.pow(' + output[i - 1] + ',' + output[i + 1] + ')';

        output[i - 1] = '';

        if (i >= l - 2 || output[i + 2] !== '^') {
            output[i + 1] = '';
        }

        i++;
    }
}
alert(output.join(''));
Ответ написан
Ваш ответ на вопрос

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

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