Как удалять объект договоренности объектов в языке сценариев JavaScript или jQuery?

Предполагая, что у меня есть следующая договоренность объектов:

    var travelers = [
         {
           "name":"ana",
           "lastname":"gomez"
         },
         {
           "name":"juan",
           "lastname":"gomez"
         },
         {
           "name":"luis",
           "lastname":"gomez"
         },
         {
           "name":"pedro",
           "lastname":"gomez"
         }
    ];

Я хотел бы знать если: есть какой-то способ удалять объект договоренности в чистом языке сценариев JavaScript или jQuery?, вводя в компьютер положение объекта, который хочется удалять.

14
задан 20.07.2016, 21:41
3 ответа

Ты можешь использовать splice:

Sintáxis:

array.splice (start, deleteCount [item1 [item2 [...]]])

Например, если ты хотел удалить третий элемент твоего array:

travelers.splice(2, 1)

array остался бы так:

var travelers = [
     {
       "name":"ana",
       "lastname":"gomez"
     },
     {
       "name":"juan",
       "lastname":"gomez"
     },
     {
       "name":"pedro",
       "lastname":"gomez"
     }
];

Хорошее splice дело в том, что ты можешь получать sub-array, который содержит то, что ты удалил, а именно, ты мог бы сохранять это для после, если бы ты хотел:

var elementoEliminado = travelers.splice(2, 1);

Переменная elementoEliminado он содержал бы:

[
    {
        "name":"luis",
        "lastname":"gomez"
    }   
]

Со своей стороны, я это использовал в каких-то случаях как тип перелокатора, например, если бы ты захотел переместить первый объект к последнему как удача ротации:

> var array = [1,2,3,4,5]
> array.push(array.splice(0, 1)[0])
> array
[2, 3, 4, 5, 1]
> array.push(array.splice(0, 1)[0])
> array
[3, 4, 5, 1, 2]

Хотя я уверен, что существуют лучшие способы.


Состоит в том, чтобы использовать другой выбор оператор delete, но то, что делает это, в действительности состоит в том, чтобы удалять свойство:

Sintáxis:

delete выражение

Пример:

delete travelers[0];

Сейчас, если бы ты захотел согласиться на первый элемент, он возвратил бы тебя undefined, но индекс существует, в отличие от splice:

travelers[0] // undefined
8
ответ дан 01.12.2019, 08:12

Смоги использовать некоторые mГ©todos, чтобы удалять элемент той же самой:

//1
travelers.shift(); // remover primer elemento
//2
travelers = travelers.slice(1); // remover primer elemento
//3
travelers.splice(0,1); // remover primer elemento
//4
travelers.pop(); // remover último elemento

, если ты хочешь переместить элемент x posiciГіn, используй:

travelers.splice(x,1);

tambiГ©n ты можешь проверять это: язык сценариев JavaScript Арраи Референсе

8
ответ дан 01.12.2019, 08:12

В Javascript существует оператор delete, который удаляет свойство объекта (и в особенности, tambiГ©n он может удалять элемент в договоренности).

Проблема состоит в том, что, хотя он удаляет элемент договоренности, он не изменяет другие Г-ndices той же договоренности. Например:

var arboles = ['peumo', 'fresno', 'roble', 'acacio', 'pino'];
delete arboles[3];
if (3 in arboles) {
    // esta rama del código no se ejecuta
}
2
ответ дан 01.12.2019, 08:12

Есть несколько способов удалять элементы в javascript.

Array.prototype.splice

Чтобы использовать этот метод, нужно знать индекс элемента, который нужно удалять.

var arreglo = [1,2,3,4,5];

var indice = arreglo.indexOf(3); // obtenemos el indice
arreglo.splice(indice, 1); // 1 es la cantidad de elemento a eliminar

console.log( arreglo );

Array.prototype.filter

Этот метод попал в EcmaScript 5, используя filter

Версия для EcmaScript 5:

var arreglo = [1,2,3,4,5];

arreglo = arreglo.filter(function(i) { return i !== 3 }); // filtramos

console.log( arreglo );

Версия для EcmaScript 2015:

var arreglo = [1,2,3,4,5];

arreglo = arreglo.filter((i) => i !== 3); // filtramos

console.log( arreglo );
3
ответ дан 03.12.2019, 23:16