Почему когда я удаляю элемент из массива, длина массива не уменьшается?

var i = ['kkasd', 'asdad', 'ddasda']

delete i[2];

console.log(i.length)

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

Автор решения: ΝNL993

Как уже другие участники отметили delete лишь заменяет значение на undefined, вы можете убедиться в этом на текущем примере:

let arr = [1, 2, 3]
console.log(arr)
delete arr[1] // Удаляем второй элемент массива
console.log(arr)

И конечно, чтобы удалить элемент массива, вы можете использовать метод splice который вызывает мутацию или же вы можете использовать метод slice, который не вызывает мутации массива, тут уже сами смотрите по своей задаче.

Пример удаления элемента массива используя slice:

let arr = [1, 2, 3]

console.log(arr)

arr = arr.slice(0, 1).concat(arr.slice(-1)) // Убираем элемент массива

console.log(arr)

→ Ссылка