Может кто-нибудь, пожалуйста, скажите, почему этот код не работает?

var newbie = []; for ( var c of "greetings"){ var newbie  = c; }; 

Я пытаюсь поместить символы «приветствия» в массив новичка.

ondrejheryan

новый участник этого сайта. Будьте внимательны, спрашивая разъяснения, комментируя и отвечая. Проверьте наш

Правила поведения

,

Вы не можете использовать = чтобы добавить элементы в массив. Вам нужно использовать Array.prototype.push

Примечание: не используйте var или let для объявления массивов и объектов. Используйте const .

Причина: обычно мы не переназначаем массивы и объекты с помощью оператора = . Мы обычно их модифицируем. Поэтому для предотвращения их переназначения используйте const . В особом случае, когда вы знаете, что вам нужно изменить значение объекта с помощью = тогда вы можете использовать let

 const newbie = []; for (let c of "greetings"){ newbie.push(c); }; console.log(newbie) 

Вы также можете использовать split() для преобразования строки в массив.

 let str = "greetings"; const newbie = str.split(''); console.log(newbie) 

Ваш код не работает, потому что вам нужно использовать push() для добавления элемента в последний индекс массива.

 var newbie = []; for ( var c of "greetings"){ newbie.push(c); }; console.log(newbie); 

В качестве альтернативы вы можете использовать split() как короткую руку, чтобы получить тот же результат:

 var text = 'greetings'; var res = text.split(''); console.log(res); 

В цикле избегайте этого утверждения var newbie = c; и используйте newbie.push(c) .

Причина: var newbie уже был создан как глобальная переменная, вам не нужно создавать его снова в цикле. Использовать существующий массив новичков