Вопрос №55230 от пользователя Баир Цыдендамбаев в уроке «Цикл for», курс «JS: Массивы»
Здравствуйте! Не могу понять что не так.
Я вроде выполняю условия задачи.
https://ru.hexlet.io/code_reviews/414611
Или есть какое-то дополнительное?
Баир Цыдендамбаев, здравствуйте.
Создайте новый пустой массив и в цикле заполните его.
Вячеслав Павлов, задание выполнилось. Но не могу понять, в чём принципиальная разница?
Разница в ссылочной природе массивов. Когда вы присваиваете новому массиву существующий и потом его изменяете, то вы изменяете существующий.
В вашем случае:
const array = ['john', 'smith', 'karl']
names = array;
names === array; // true
После выполнения первого теста мы получаем результат:
[ 'Mr john', 'Mr smith', 'Mr karl' ]
names === array; // true
console.log(names); // [ 'Mr john', 'Mr smith', 'Mr karl' ]
console.log(array); // [ 'Mr john', 'Mr smith', 'Mr karl' ]
Этот массив мы получаем на вход второго теста, соответственно в ошибках теста мы видим:
- Expected - 3
+ Received + 3
Array [
- "Mrs john",
- "Mrs smith",
- "Mrs karl",
+ "Mrs Mr john",
+ "Mrs Mr smith",
+ "Mrs Mr karl",
Цитата из урока 'Ссылки' курса 'JS: Массивы':
- Проектируя функции, работающие с массивами, есть два пути: менять исходный массив или формировать внутри новый и возвращать его наружу. Какой лучше? В подавляющем большинстве стоит предпочитать второй. Это безопасно. Функции, возвращающие новые значения, удобнее в работе, а поведение программы становится в целом более предсказуемым, так как отсутствуют неконтролируемые изменения данных.
p/s: можно использовать Spread-оператор для копирования массива const names = [...array]
Приветствую!
Вячеслав подробно ответил на ваш вопрос. Вам удалось разобраться?
Вячеслав, спасибо за помощь!
Вячеслав Павлов, всё. Теперь понял. Большое спасибо!
Роман Ашиков, да. Всё стало понятно.
Используйте Хекслет по максимуму!
- Задавайте вопросы по уроку
- Проверяйте знания в квизах
- Проходите практику прямо в браузере
- Отслеживайте свой прогресс
Зарегистрируйтесь или войдите в свой аккаунт
С нуля до разработчика. Возвращаем деньги, если не удалось найти работу.







