Метод splice() JS

let arr = [1, 2, 3, 4, 5].splice(1, 2); // результат [2, 3]

let arr = [1, 2, 3, 4, 5];
let sub = arr.splice(1, 2); // результат [1, 4, 5]

Почему разный результат? Применяется ведь тот-же метод?!


Ответы (1 шт):

Автор решения: Алексей Шиманский

Читаем доки https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Array/splice

Возвращаемое значение Массив, содержащий удалённые элементы.

Если вы смотрите в первом примере на arr, а во втором на sub, то увидите одинаковый результат.

Если и там и там смотрите на arr, то логично, что результат разный., потому что в первом случае в arr складывается возвращаемый результат, а во втором в arr хранится то, что не вырезали, так как над ним делали операции, а результат вернули в sub


let arr = [1, 2, 3, 4, 5].splice(1, 2); 
console.log(arr);

arr = [1, 2, 3, 4, 5];
let sub = arr.splice(1, 2);
console.log(sub); // Результат одинаковый и по-другому быть не может

//--------------------------------

arr = [1, 2, 3, 4, 5].splice(1, 2); 
console.log(arr);

arr = [1, 2, 3, 4, 5];
sub = arr.splice(1, 2);
console.log(arr); // Результат разный, потому что результат в #1 складывается в arr, а в #2 в sub, а сама операция производится с arr и никак не перезаписывается чем либо ещё

→ Ссылка