Удаление элемента массива без сдвига индексов
Здравствуйте. Имеется массив со строками.
Содержит, допустим, 50 элементов. Требуется, чтобы при удалении 25ого элемента он полностью отсутствовал, т.е. в массиве были 1...22,23,24,26,27....50 и не было 25. Как это сделать? splice не так работает. Следует ли для этого использовать объект с ключами в виде цифр? |
Привет,
Почему splice не так работает? var arr = [1,2,3,4,5,6,7,8,9]; arr.splice(5,1); console.log(arr); // [1,2,3,4,5,7,8,9] - 6 исчезла. |
delete array[25]; Удалит ключ и значение. |
@danik.js, аа!! спасибо большое! то что нужно!! карму пока не могу поднять) кого-то другого нужно плюсануть, чтоб мог опять тебя))
@mishgun131, потому что по arr[5] будет существовать элемент, хотя его значение и будет 7 |
:) вариант - просто как демострация возможности удаления
var arr = [1,2,3,4,5,6,7,8,9]; delete arr[0]; alert(arr[0]) alert([arr.length, Object.keys(arr)]); var arr = [1,2,3,4,5,6,7,8,9]; function del(arr, indx) { var ghost = Array(); for (var i=0; i<arr.length; i++) {i != indx && (ghost[i]=arr[i])}; return ghost; } arr = del(arr, 0) alert(arr[0]) alert([arr.length, Object.keys(arr)]); |
Цитата:
|
Хотя сори, delete и вправду удаляет элемент вместе с индексом, видимо, у меня баг какой-то в коде был просто
|
Часовой пояс GMT +3, время: 19:51. |