Предполагая, что у меня есть следующий массив объектов:
var travelers = [
{
"name":"ana",
"lastname":"gomez"
},
{
"name":"juan",
"lastname":"gomez"
},
{
"name":"luis",
"lastname":"gomez"
},
{
"name":"pedro",
"lastname":"gomez"
}
];
Я хотел бы знать, есть ли способ удалить объект из массива в чистом JavaScript или jQuery , введя позицию удаляемого объекта.
Вы можете использовать сплайсинг :
Синтаксис:
Например, если вы хотите удалить третий элемент вашего массива:
Массив будет выглядеть так:
Самое приятное в
splice
этом то, что вы можете получить подмассив, содержащий то, что вы удалили, то есть вы можете сохранить его на потом, если хотите:Переменная
elementoEliminado
будет содержать:Со своей стороны, я несколько раз использовал его как своего рода релокатор, например, если вы хотели передать первый объект последнему как своего рода вращение:
Хотя я уверен, что есть лучшие способы.
Другой вариант — использовать оператор удаления , но на самом деле он удаляет свойство :
Синтаксис:
Пример:
Теперь, если вы хотите получить доступ к первому элементу, он вернет
undefined
, но индекс существует, в отличие отsplice
:Вы можете использовать несколько методов для удаления элемента из него:
Если вы хотите удалить элемент из позиции x, используйте:
вы также можете проверить это: Справочник по массиву JavaScript
Есть несколько способов удалить элементы в javascript.
Array.prototype.splice
Для использования этого метода необходимо знать индекс удаляемого элемента.
Массив.прототип.фильтр
Этот метод был введен в EcmaScript 5 с использованием фильтра
Версия для EcmaScript 5:
Версия для EcmaScript 2015:
В Javascript есть оператор
delete
, который удаляет свойство у объекта (и, в частности, может также удалять элемент в массиве).Проблема в том, что хотя он удаляет элемент из массива, он не изменяет другие индексы того же массива. Например: