Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Метод slice не сработал

ваном Ученик (208), закрыт 2 года назад
Почему метод slice не сработал? Спасибо.

function func(arr) {
arr.slice(1, 1);
}

let arr = [1, 2, 3];
func(arr);
console.log(arr);
(3) [1, 2, 3]
Лучший ответ
Антон Михайлов Гуру (2635) 2 года назад
Метод slice() не сработал, потому что он не изменяет исходный массив, а возвращает новый массив, содержащий выбранные элементы.

В вашем примере, функция func() вызывает метод slice() на массиве arr, но не сохраняет возвращаемое значение в переменную. Это означает, что изменений в массиве arr не происходит.

Если вы хотите удалить элементы из массива с помощью slice(), то вам нужно сохранить возвращаемое значение в переменной и присвоить его массиву arr, например:
 function func(arr) { 
arr = arr.slice(1, 2);
return arr;
}

let arr = [1, 2, 3];
arr = func(arr);
console.log(arr); // [2]
В этом примере, метод slice() возвращает новый массив, содержащий элементы с индексами от 1 до 2 (не включая 2). Мы сохраняем этот новый массив в переменную arr внутри функции func(), а затем возвращаем его из функции. Затем мы присваиваем возвращаемое значение переменной arr в главной программе, чтобы изменить исходный массив.
Остальные ответы
Александр Лонберг Мыслитель (9474) 2 года назад
Потому что надо splice
Повторяю sPlice с буквой P

Это 2-е разные функции и slice копирует, а не удаляет.
Яков Гото Искусственный Интеллект (352207) 2 года назад
Потому что ты не вернула результат работы метода. В данном случае рабочий вариант кода будет выглядеть вот так:
 function func(arr) { 
return arr.slice(1,2); // Вернуть 1 элемент после 1 индекса
}

let arr = [1, 2, 3];

arr = func(arr); // Перезаписать исходный массив

console.log(arr); // [ 2 ]
Похожие вопросы