delete działa jak sytuacja nierzeczywista, po prostu usuwa element, ale długość tablicy pozostaje taka sama:
przykład z terminala węzłowego:
> var arr = ["a","b","c","d"];
> delete arr[2]
true
> arr
[ 'a', 'b', , 'd', 'e' ]
Oto funkcja usuwania elementu tablicy według indeksu, używając slice () , bierze arr jako pierwszy argument, a indeks elementu, który chcesz usunąć, jako drugi argument. Jak widać, faktycznie usuwa on element tablicy i zmniejsza długość tablicy o 1
function(arr,arrIndex){
return arr.slice(0,arrIndex).concat(arr.slice(arrIndex + 1));
}
Powyższa funkcja polega na przejściu wszystkich elementów do indeksu i wszystkich elementów po indeksie, a następnie połączeniu ich razem i zwrócenia wyniku.
Oto przykład wykorzystania powyższej funkcji jako modułu węzła, przydanie się terminalowi będzie przydatne:
> var arr = ["a","b","c","d"]
> arr
[ 'a', 'b', 'c', 'd' ]
> arr.length
4
> var arrayRemoveIndex = require("./lib/array_remove_index");
> var newArray = arrayRemoveIndex(arr,arr.indexOf('c'))
> newArray
[ 'a', 'b', 'd' ] // c ya later
> newArray.length
3
pamiętaj, że to nie zadziała w jednej tablicy z duplikatami, ponieważ indexOf („c”) dostanie tylko pierwsze wystąpienie, a jedynie podzieli i usunie pierwsze znalezione „c”.
.splice
pętli spójrz na to pytanie: Usuń z tablicy w javascript .