Comment supprimer un élément d'un tableau dans JavaScript?

var arr = [1,2,3,5,6];

je veux supprimer le 1er élément du tableau pour qu'il devienne:

var arr = [2,3,5,6];

pour étendre cette question, Que faire si je veux supprimer le 2ème élément du tableau pour qu'il devienne:

var arr = [1,3,5,6];
311
demandé sur Samuel Liew 2010-01-05 05:34:29

9 réponses

pour une solution plus flexible, utilisez la fonction splice() . Il vous permet de supprimer n'importe quel élément dans un tableau basé sur la valeur D'Index:

var indexToRemove = 0;
var numberToRemove = 1;

arr.splice(indexToRemove, numberToRemove);
315
répondu Gabriel McAdams 2014-12-08 12:09:56

shift() est idéal pour votre situation. shift() supprime le premier élément d'un tableau et renvoie cet élément. Cette méthode modifie la longueur du tableau.

array = [1, 2, 3, 4, 5];

array.shift(); // 1

array // [2, 3, 4, 5]
649
répondu JP Silvashy 2013-11-30 20:46:39

Le Array.prototype.shift méthode supprime le premier élément d'un tableau, et le renvoie. Il modifie le tableau d'origine.

var a = [1,2,3]
// [1,2,3]
a.shift()
// 1
a
//[2,3]
54
répondu Ped 2015-05-28 08:43:42
arr.slice(begin[,end])

est non destructive, épissure et shift vous permettra de modifier votre tableau original

36
répondu kiuma 2011-10-18 07:29:50

a écrit un petit article sur l'insertion et la suppression d'éléments à des positions arbitraires dans les tableaux Javascript.

voici le petit morceau pour enlever un élément de n'importe quelle position. Ceci étend la classe Array dans Javascript et ajoute la méthode remove(index).

// Remove element at the given index
Array.prototype.remove = function(index) {
    this.splice(index, 1);
}

alors pour supprimer le premier élément dans votre exemple, appelez arr.supprimer ():

var arr = [1,2,3,5,6];
arr.remove(0);

pour supprimer le deuxième élément,

arr.remove(1);

voici un minuscule article avec Insérer et supprimer des méthodes pour la classe Array.

essentiellement, ceci n'est pas différent des autres réponses utilisant splice, mais le nom splice n'est pas intuitif, et si vous avez cet appel tout au long de votre application, il rend juste le code plus difficile à lire.

13
répondu Anurag 2010-09-10 06:48:54

peut-être quelque chose comme ça:

arr=arr.slice(1);
10
répondu ThatGuyYouKnow 2012-08-27 13:02:53

Si vous souhaitez supprimer un ou plusieurs éléments d'un tableau dépend de son contenu et/ou sa position .

vous pouvez utiliser la fonction JS filter array.

https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/filter .

supprimer le premier élément :

// Not very useful but it works
function removeFirst(element, index) {
  return index > 0;
}
var arr = [1,2,3,5,6].filter(removeFirst); // [2,3,4,5,6]

supprimer le deuxième élément :

function removeSecond(element, index) {
  return index != 1;
}
var arr = [1,2,3,5,6].filter(removeSecond); // [1,3,4,5,6]

Supprimer l'élément impair :

function removeOdd(element, index) {
  return !(element % 2);
}
var arr = [1,2,3,5,6].filter(removeOdd); [2,4,6]
2
répondu Martin Choraine 2017-08-05 13:58:38

vous pouvez utiliser la fonction D'assignation de déstructuration ES6 avec un opérateur de repos. Une virgule indique où vous voulez supprimer l'élément et le reste (...arr) opérateur pour vous donner les éléments restants du tableau.

const source = [1,2,3,5,6];

function removeFirst(list) {
   var  [, ...arr] = source;
   return arr;
}
const arr = removeFirst(source);
console.log(arr); // [2, 3, 5, 6]
console.log(source); // [1, 2, 3, 5, 6]
0
répondu Brendan 2018-08-07 22:04:00

Array.splice() a la propriété intéressante qu'on ne peut pas l'utiliser pour enlever le premier élément. Donc, nous devons recourir à

function removeAnElement( array, index ) {
    index--;

    if ( index === -1 ) {
        return array.shift();
    } else {
        return array.splice( index, 1 );
    }
}
-1
répondu Gabriel Schulhof 2015-02-23 07:31:18