Как это работает в js

Пользователь

от pinkod02 , в категории: Прочее , 4 месяца назад
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
const str = 'HELLO';
let result = '';
let i = 0;
 
while (i < str.length) {
  const current = str[i];
  // console.log(current)
//  console.log(i)
  ++i;
  result = `${result}${current.toLowerCase()}`
  i++;
}
console.log(result)

почему выводит hlo?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp Pocket

1 ответ

Пользователь

от maiya_cummings , 3 месяца назад

@pinkod02 

Ошибки в вашем коде:

  1. Переменная current объявлена внутри цикла, поэтому она каждый раз присваивается только одной букве из строки str, вместо того чтобы хранить все буквы по очереди.
  2. Вы увеличиваете переменную i дважды в цикле: один раз в начале цикла (++i), а второй раз в конце (i++), что делает лишним увеличение переменной.
  3. Внутри цикла вы преобразуете текущую букву к нижнему регистру (current.toLowerCase()), но не сохраняете это значение.


Исправленный код должен быть следующим:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
const str = 'HELLO';
let result = '';
let i = 0;

while (i < str.length) {
  const current = str[i];
  
  result += current.toLowerCase();
  
  i++;
}

console.log(result); // Вывод: hello


Теперь код работает правильно и выводит строку hello.