W jQuery/JavaScript, Jak usunąć element tablicy?W jquery w jaki sposób usunąć element tablicy przez index ["klucz"] lub wartość
coś takiego:
array.remove(array["key"]);
// or
array.remove("value")
W jQuery/JavaScript, Jak usunąć element tablicy?W jquery w jaki sposób usunąć element tablicy przez index ["klucz"] lub wartość
coś takiego:
array.remove(array["key"]);
// or
array.remove("value")
Sądząc po kodzie, to brzmi jak chcesz usunąć majątkowych obiektu, który chcesz zrobić z delete
:
var obj = { key: "value" };
delete obj["key"];
bardzo przydatny przewodnik na pracę z obiektami w JavaScript można znaleźć na MDN.
delete pozostawi pustą wartość, nadal będziesz musiał przeładować obiekt, chociaż otrzymasz pusty indeks, który usunąłeś – user889030
array["key"]
nie jest kluczem do tablicy (nie ma tablic asocjacyjnych w javascript, jeśli pochodzisz z PHP mogą one wyglądać jak one, ale są obiektami), ale właściwość obiektu, myślę, że możesz użyć delete
delete array.key
'tablica [" klucz "] === array.key' – Eric
chociaż array [x] (używając zmiennej w" X ") to nie to samo co array.x –
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.splice(2, 1);
usunie 1 pozycję tablicy z owoców, w pozycji 2, który jest Apple
Dla tablice użyciu metody splice:
var array = [1, 2, 3, 4, 5];
array.splice(2, 1);
console.log(array); // [1, 2, 4, 5]
Można zrobić własną funkcję, aby usunąć (pierwsze wystąpienie) pewnego elementu w tablicy:
Array.prototype.remove = function(el) {
return this.splice(this.indexOf(el), 1);
}
var arr = [1, 2, 3, 4, 5];
arr.remove(4);
console.log(arr); // [1, 2, 3, 5]
Jeśli chcesz usunąć element z obiektu, użyj delete
składnia:
var a = {key1: 'val1', key2: 'val2'};
delete a.key1;
console.log(a); // {key2: 'val2'}
I znowu można zrobić własną funkcję obsługi to:
Object.prototype.remove = function(el) {
if (this.hasOwnProperty(el)) {
delete this[el];
}
return this;
}
var a = {key1 : 'val1', key2: 'val2'};
a.remove('key1');
console.log(a); // {key2: 'val2'}
Aktualizacja:
-1
, a metoda splotu usunie ostatni element (pierwszy element z końca tablicy). Dzięki, @amnotiam!function remove(collection, key) {
// if the collections is an array
if(collection instanceof Array) {
if(collection.indexOf(key) != -1) {
collection.splice(collection.indexOf(key), 1);
}
}
// it's an object
else if(collection.hasOwnProperty(key)) {
delete collection[key];
}
return collection;
};
I oczywiście, ponieważ pytanie zostało oznaczone jquery
, możemy dodać tę funkcję jako plugin jquery:
(function($, global, undefined) {
$.removeElementFromCollection = function(collection,key) {
// if the collections is an array
if(collection instanceof Array) {
// use jquery's `inArray` method because ie8
// doesn't support the `indexOf` method
if($.inArray(key, collection) != -1) {
collection.splice($.inArray(key, collection), 1);
}
}
// it's an object
else if(collection.hasOwnProperty(key)) {
delete collection[key];
}
return collection;
};
})(jQuery, window);
a następnie używać go tak:
var array = [1, 2, 3, 4, 5];
$.removeElementFromCollection(array, 2); // [1, 3, 4, 5]
var object = {1: 2, 3: 4};
$.removeElementFromCollection(object, 1); // {3: 4}
Ponieważ ta odpowiedź obejmuje wszystkie możliwe warianty (tablica/obiekt + klucz/wartość), możemy upiększyć pytanie, a następnie połączyć każde pytanie" usuń "tutaj jako duplikaty? –
To był przykład. możesz wywnioskować, jakie są argumenty według faktycznego wyniku, lub możesz przeczytać link do postetu do dokumentacji metody łączenia. Pierwszym argumentem jest indeks od miejsca, w którym chcesz usunąć elementy, a drugi to liczba elementów, które chcesz usunąć. –
'Object.prototype.remove = ...' - ** Nie rób tego! **. Co się stanie, jeśli mój obiekt to '{add: 'val1', remove: 'val2'}'? – Eric
Element tablicy lub obiekt własność ct? –
Niezależnie od tego, czy pytasz o tablicę, czy po prostu zwykły obiekt, to zostało to wiele razy omówione na StackOverflow. Obecnie nie mogę stwierdzić, czy chcesz usunąć właściwość, usunąć element Array według indeksu lub usunąć element Array według wartości. NARQ IMO. –