Bizarrement, je n’ai trouvé trace nulle part d’une fonction JavaScript qui supprime un élément d’un tableau en fonction de sa valeur.
J’ai donc écrit cette fonction, toujours en étendant l’objet Array
.
Array.prototype.remove = function(p_val) {
var toRemove = null;
for(var i = 0; l = this.length; i < l; i++) {
if(this[i] == p_val) { toRemove = { id: i, value: this[i] }; }
}
if (toRemove != null) {
for (var i = toRemove.id; i < this.length; i++) {
this[i] = this[i+1];
}
this.pop();
return toRemove.value;
}
return null;
}
Cette fonction parcourt donc le tableau jusqu’à ce qu’il trouve la valeur passée en argument. Une fois cette valeur trouvée, il parcourt le reste tableau en affectant la valeur de la cellule suivante à la cellule courante (pas très clair, mais il suffit de regarder le code 😋).
La fonction retourne true
si elle a supprimé l’élément, false
sinon.