Voir le flux RSS

danielhagnoul

Comment supprimer un élément d'un array ?

Noter ce billet
par , 31/08/2016 à 23h32 (329 Affichages)
  • Si l'élément est en queue, il y a pop().
  • Si l'élément est en tête, il y a shift().
  • Si l'élément est au coeur de l'array, il y a splice().


Lorsqu'on utilise indexOf() pour connaître la position de l'élément recherché, il faut se souvenir que cette méthode retourne -1 en cas d'échec, car splice( -1, 1 ) équivaut à pop().

Pour retirer le premier élément recherché :

Code JavaScript" : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
function remove( array, element ) {
    const index = array.indexOf( element );
    
    if ( index !== -1 ){
        array.splice( index, 1 );
    }
}

Pour retirer tous les éléments recherchés :

Code JavaScript" : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
function remove( array, element ){
    let index = array.indexOf( element );
    
    while ( index !== -1 ){
        array.splice( index, 1 );
        index = array.indexOf( element );
    }
}

Envoyer le billet « Comment supprimer un élément d'un array ? » dans le blog Viadeo Envoyer le billet « Comment supprimer un élément d'un array ? » dans le blog Twitter Envoyer le billet « Comment supprimer un élément d'un array ? » dans le blog Google Envoyer le billet « Comment supprimer un élément d'un array ? » dans le blog Facebook Envoyer le billet « Comment supprimer un élément d'un array ? » dans le blog Digg Envoyer le billet « Comment supprimer un élément d'un array ? » dans le blog Delicious Envoyer le billet « Comment supprimer un élément d'un array ? » dans le blog MySpace Envoyer le billet « Comment supprimer un élément d'un array ? » dans le blog Yahoo

Mis à jour 16/09/2016 à 10h48 par danielhagnoul

Catégories
Javascript , Développement Web , ES2015

Commentaires

  1. Avatar de autran
    • |
    • permalink
    Daniel,

    Maintenant que Sylvain m'a rendu addict a ES6 et aux méthodes de l'objet Array, je ne peux pas m’empêcher de proposer cette solution :

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var remove = ( arr, element ) => arr.filter(item => item != element);
    console.log(remove([1,2,3,4,5,6,7], 5)); //[ 1, 2, 3, 4, 6, 7 ]

    A+

    Marc
  2. Avatar de danielhagnoul
    • |
    • permalink
    Bonjour Marc

    Après avoir débuggé un code, j'ai écrit ce billet pour attirer l'attention sur le problème posé par indexOf().

    Pour le second cas, "retirer tous les éléments recherchés", ta méthode est bonne.

    Vu ceci et ta version ES2015 de l'algorithme MapReduce, je dirais que tu es devenu un "pro" de l'array.

    Reste à te débarrasser des "var" au profit de "const" et de "let".

    Au plaisir de te lire.