web-dev-qa-db-fra.com

Comment supprimer un élément de tableau dans TypeScript?

J'ai un tableau que j'ai créé dans TypeScript et il a une propriété que j'utilise comme clé. Si j'ai cette clé, comment puis-je en retirer un article?

291
Tim Almond

De la même manière qu'en JavaScript.

_delete myArray[key];
_

Notez que cela définit l'élément sur undefined.

Mieux vaut utiliser la fonction Array.prototype.splice :

_const index = myArray.indexOf(key, 0);
if (index > -1) {
   myArray.splice(index, 1);
}
_
483
blorkfish

Si array est un type d’objet, alors le moyen le plus simple est de

let foo_object // Item to remove
this.foo_objects = this.foo_objects.filter(obj => obj !== foo_object);
136
Malik Shahzad

Avec ES6, vous pouvez utiliser ce code:

removeDocument(doc){
   this.documents.forEach( (item, index) => {
     if(item === doc) this.documents.splice(index,1);
   });
}
41
Idak

C'est ma solution pour cela:

onDelete(id: number) {
    this.service.delete(id).then(() => {
        let index = this.documents.findIndex(d => d.id === id); //find index in your array
        this.documents.splice(index, 1);//remove element from array
    });

    event.stopPropagation();
}
13
Butsaty

Vous pouvez utiliser la méthode splice sur un tableau pour supprimer les éléments.

par exemple, si vous avez un tableau nommé arr, utilisez ce qui suit:

arr.splice(2,1);

alors ici, l'élément d'indice 2 sera le point de départ et l'argument 2 déterminera le nombre d'éléments à supprimer.

Si vous souhaitez supprimer le dernier élément du tableau nommé arr, procédez comme suit:

arr.splice(arr.length,1);

Cela retournera arr avec le dernier élément supprimé.

13
akash venugopal

laisser les départements est un tableau. Vous voulez supprimer un élément de ce tableau.

departments: string[] = [];

 removeDepartment(name: string): void {
    this.departments = this.departments.filter(item => item != name);
  }
7
Abdus Salam Azad

Réponse en utilisant l'opérateur de propagation TypeScript (...)

// Your key
const key = 'two';

// Your array
const arr = [
    'one',
    'two',
    'three'
];

// Get either the index or -1
const index = arr.indexOf(key); // returns 0


// Despite a real index, or -1, use spread operator and Array.prototype.slice()    
const newArray = (index > -1) ? [
    ...arr.slice(0, index),
    ...arr.slice(index + 1)
] : arr;

Une autre solution utilisant TypeScript:

let updatedArray = [];
for (let el of this.oldArray) {
    if (el !== elementToRemove) {
        updated.Push(el);
    }
}
this.oldArray = updated;
3
Sh. Pavel