189 votes

Recherche et suppression d'une chaîne dans un tableau en javascript ?

Je l'ai fait :

var array = new Array();
array.push("A");
array.push("B");
array.push("C");

Je veux être capable de faire quelque chose comme :

array.remove("B");

mais il n'y a pas de fonction de suppression. Comment faire ?

5 votes

Une combinaison de .indexOf() y .splice() devrait faire l'affaire. Ou peut-être, alternativement, .filter() .

1 votes

0 votes

3voto

Ali Soltani Points 6276

Solution simple (ES6)

Si vous n'avez pas d'élément en double

Array.prototype.remove = function(elem) {
  var indexElement = this.findIndex(el => el === elem);
  if (indexElement != -1)
    this.splice(indexElement, 1);
  return this;
};   

Démonstration en ligne (violon)

0 votes

Cette solution supprime toujours le dernier élément si AUCUNE correspondance n'est trouvée.

3voto

siva gopi Points 41
const changedArray = array.filter( function(value) {
  return value !== 'B'
});

ou vous pouvez utiliser :

const changedArray = array.filter( (value) => value === 'B');

Le tableau modifié contiendra la valeur sans "B".

2voto

hvgotcodes Points 55375

Vous devez écrire votre propre retrait. Vous pouvez boucler sur le tableau, récupérer l'index de l'élément que vous voulez supprimer, et utiliser la fonction splice pour l'enlever.

Une autre solution consiste à créer un nouveau tableau, à boucler sur le tableau actuel et, si l'objet actuel ne correspond pas à ce que vous voulez supprimer, à le placer dans un nouveau tableau.

1voto

Ben Clayton Points 16793

Utiliser :

array.splice(2, 1);

Cela supprime un élément du tableau, en commençant par l'indice 2 (3ème élément).

1 votes

En fait, il supprimera le deuxième élément du tableau, l'index commençant à zéro. Cette déclaration est ambiguë, un exemple plus simple pourrait être le suivant array.splice(2,1) qui supprime 1 élément à l'index 2 du tableau. vérifier https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/splice pour plus de détails

1voto

chepe263 Points 1326

Utiliser array.splice

/*array.splice(index , howMany[, element1[, ...[, elementN]]])

array.splice(index) // SpiderMonkey/Firefox extension*/

array.splice(1,1)

Source : https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/splice

0 votes

La virgule entre array y splice doit être un point.

0 votes

J'ai essayé de corriger mais la politique de SO stipule que les modifications doivent être de 6 caractères ou plus :/

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X