delete agit comme une situation non réelle, il supprime simplement l'élément, mais la longueur du tableau reste la même:
exemple du terminal de noeud:
> var arr = ["a","b","c","d"];
> delete arr[2]
true
> arr
[ 'a', 'b', , 'd', 'e' ]
Voici une fonction pour supprimer un élément d'un tableau par index, en utilisant slice () , il prend l'arr comme premier argument et l'index du membre que vous voulez supprimer comme deuxième argument. Comme vous pouvez le voir, il supprime en fait le membre du tableau et réduira la longueur du tableau de 1
function(arr,arrIndex){
return arr.slice(0,arrIndex).concat(arr.slice(arrIndex + 1));
}
Ce que fait la fonction ci-dessus, c'est de prendre tous les membres jusqu'à l'index et tous les membres après l'index, de les concaténer ensemble et de retourner le résultat.
Voici un exemple utilisant la fonction ci-dessus comme module de nœud, voir le terminal sera utile:
> 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
veuillez noter que cela ne fonctionnera pas avec un seul tableau contenant des dupes, car indexOf ("c") obtiendra simplement la première occurrence, et ne fera qu'épisser et supprimer le premier "c" qu'il trouve.
.splice
boucles in, jetez un œil à cette question: Supprimer du tableau en javascript .