Почему функция возвращает массив с теме же данными?

Проблема заключается в том что функция возвращает массив с данными которые были изначально, а должна возвращать с иными данными
const arrayTaskOne = ['a','b','c','d'];
function functionTaskOne () {
    return arrayTaskOne.splice(0, 4, 'e', 'f', 'g', 'h');
}
console.log(functionTaskOne(arrayTaskOne));
  • Вопрос задан
  • 75 просмотров
Решения вопроса 3
MrDecoy
@MrDecoy Куратор тега JavaScript
Верставший фронтендер
Потому что Вы не прочитали документацию по методу.

https://developer.mozilla.org/ru/docs/Web/JavaScri...
Возвращаемое значение
Массив, содержащий удалённые элементы.


Соответственно, return [].splice() возвращает массив из элементов, которые были удалены.
А ещё метод - деструктивный. То есть меняет исходные данные. arrayTaskOne, объявленный вне функции, изменился, а это не хорошо.
Почему не хорошо? Гуглите по теме: чистые функции, сайд эффект
Ответ написан
Комментировать
SagePtr
@SagePtr
Еда - это святое
https://developer.mozilla.org/ru/docs/Web/JavaScri...
Возвращаемое значение
Массив, содержащий удалённые элементы. Если будет удалён только один элемент, вернётся массив из одного элемента. Если никакие элементы не будут удалены, вернётся пустой массив.
Ответ написан
Комментировать
georgi1984
@georgi1984
Нравится JavaScript
const arrayTaskOne = ['a','b','c','d'];
function functionTaskOne (array) 
    let newArray = array;
    newArray.splice(0, 4, 'e', 'f', 'g', 'h');
    return newArray;
}
console.log(functionTaskOne(arrayTaskOne));
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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