Запуск простой функции в JS

#javascript

#javascript

Вопрос:

список переменных: строка[];

 list = [ "pet", "luscy" ];

for (var i = 0; i < list.length; i  )
{
      list.push(list[i]. toLowerCase()); 
} 
  

Я не знаю, что я здесь делаю не так.

Комментарии:

1. Что вы намерены делать?

2. Вам не нужно нажимать.

3. @squeekyDave, ну, мы не знаем, что он хочет сделать

4. @jo_va хехе, да, я просто предполагаю, что ему интересно, почему его функция не работает 🙂

Ответ №1:

Это бесконечный цикл. Вы вводите один и тот же массив, list.length который увеличивается с каждой итерацией.

Если вы хотите сделать каждую строку строчной; Вы можете использовать Array.map .

 list = [ "pet", "luscy" ];

list = list.map(l => l.toLowerCase())

  

Ответ №2:

Это должно сработать у вас, но это зависит от того, чего вы на самом деле пытаетесь достичь.

 var list = ["pet", "luscy"];
const listLength = list.length;

for (var i = 0; i < listLength ; i  ) {
    list.push(list[i].toLowerCase()); 
} 
  

Ответ №3:

Просто сделай это:

 ["pet", "luscy"].map(v => v.toLowerCase());
  

Ответ №4:

Когда вы нажимаете, длина увеличивается, и это вызывает бесконечный цикл, поскольку вы считываете обновленную длину на каждой итерации.

сохраните значение как length = list.length перед операцией и используйте эту длину, если вы планируете обновлять массив в цикле

Также, кажется, перед вызовом функции есть пробел.

 list = [ "pet", "luscy" ];

let length = list.length
for (var i = 0; i < list.length; i  )
{
      list.push(list[i].toLowerCase()); 
}
  

Это возвращает список как [ «домашнее животное», «ласковый», «pet», «ласковый»];
Но не уверен, было ли это первоначальным намерением.

Комментарии:

1. Пробел не наносит никакого вреда (как и остальные странные отступы)