1271 Stimmen

Wie entferne ich ein Element aus einem Array nach Wert?

Gibt es eine Methode, um ein Element aus einem JavaScript-Array zu entfernen?

Angenommen, wir haben ein Array:

var ary = ['three', 'seven', 'eleven'];

Ich möchte etwas Ähnliches tun wie:

removeItem('seven', ary);

Ich habe splice() untersucht, aber das entfernt nur anhand der Positionsnummer, während ich etwas brauche, um ein Element anhand seines Wertes zu entfernen.

32voto

Kld Punkte 6718
var index = array.indexOf('item');

if(index!=-1){

   array.splice(index, 1);
}

19voto

Lotus Punkte 2476

Was du suchst, ist ein Filter

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

Dies ermöglicht es Ihnen, folgendes zu tun:

var ary = ['three', 'seven', 'eleven'];
var aryWithoutSeven = ary.filter(function(value) { return value != 'seven' });
console.log(aryWithoutSeven); // gibt ['three', 'eleven'] zurück

Das wurde auch in diesem Thread irgendwo anders erwähnt: https://stackoverflow.com/a/20827100/293492

18voto

Oliver Dixon Punkte 6507

Auf die ES6-Art.

const commentsWithoutDeletedArray = commentsArray.filter(comment => comment.Id !== commentId);

16voto

greene Punkte 559

Wenn Sie eindeutige Werte haben und die Reihenfolge nicht wichtig ist, verwenden Sie Set, es hat delete():

var mySet = new Set(['drei', 'sieben', 'elf']);
mySet.delete('sieben'); // Gibt true zurück, erfolgreich entfernt    
[...mySet];            // Gibt ['drei', 'elf'] zurück

15voto

rbenvenuto Punkte 2415

Wirklich, ich verstehe nicht, warum das nicht mit gelöst werden kann

arr = arr.filter(value => value !== 'sieben');

Oder vielleicht möchten Sie Vanilla JS verwenden

arr = arr.filter(function(value) { return value !== 'sieben' });

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X