var arr = [1,2,3,5,6];
Entfernen Sie das erste Element
Ich möchte das erste Element des Arrays entfernen, damit es:
var arr = [2,3,5,6];
Entfernen Sie das zweite Element
Um diese Frage zu erweitern, was ist, wenn ich das zweite Element des Arrays entfernen möchte, damit es wird:
var arr = [1,3,5,6];
javascript
arrays
user198729
quelle
quelle
slice(start, end)
nicht 'how_many_to_remove'splice
nicht,slice
denke ich.Antworten:
Verwenden Sie für eine flexiblere Lösung die
splice()
Funktion. Sie können jedes Element in einem Array basierend auf dem Indexwert entfernen:quelle
arr.splice(1,1)
für das zweite Element.splice()
es,shift()
weil es flexibler ist. Möglicherweise möchte ich in Zukunft etwas anderes tun, und nicht immer möchte ich nur ein Element oder sogar das erste Element entfernen.shift()
ist ideal für Ihre Situation.shift()
Entfernt das erste Element aus einem Array und gibt dieses Element zurück. Diese Methode ändert die Länge des Arrays.quelle
shift()
,splice(..., ...)
da es viel expliziter und direkter ist.shift
ist schneller, es sei denn, Sie spleißen große Listen jsperf.com/splice-vs-shift3 und jsperf.com/splice-vs-shift2Die
Array.prototype.shift
Methode entfernt das erste Element aus einem Array und gibt es zurück. Es ändert das ursprüngliche Array.quelle
ist zerstörungsfrei, Splice und Shift ändern Ihr ursprüngliches Array
quelle
Schrieb einen kleinen Artikel über das Einfügen und Löschen von Elementen an beliebigen Positionen in Javascript-Arrays.
Hier ist der kleine Ausschnitt, mit dem Sie ein Element aus einer beliebigen Position entfernen können. Dadurch wird die Array-Klasse in Javascript erweitert und die Methode remove (index) hinzugefügt.
Um das erste Element in Ihrem Beispiel zu entfernen, rufen Sie arr.remove () auf:
Um das zweite Element zu entfernen,
Hier ist ein winziger Artikel mit Einfüge- und Löschmethoden für die Array-Klasse.
Im Wesentlichen unterscheidet sich dies nicht von den anderen Antworten, die Splice verwenden, aber der Name
splice
ist nicht intuitiv. Wenn Sie diesen Aufruf in Ihrer gesamten Anwendung haben, wird der Code nur schwerer lesbar.quelle
Vielleicht so etwas:
quelle
Andere Antworten sind großartig. Ich wollte nur eine alternative Lösung mit der
ES6
Array-Funktion hinzufügen :filter
.filter()
Erstellt ein neues Array mit Elementen, die unter ein bestimmtes Kriterium fallen, aus einem vorhandenen Array.So können Sie problemlos Elemente entfernen, die die Kriterien nicht erfüllen. Diese Funktion bietet den Vorteil, dass Sie sie für komplexe Arrays verwenden können, nicht nur für Zeichenfolgen und Zahlen.
Erstes Element entfernen :
Zweites Element entfernen :
Ungerades Element entfernen :
Nicht auf Lager befindliche Artikel entfernen
quelle
Sie können die ES6-Destructuring Assignment-Funktion mit einem Restoperator verwenden. Ein Komma gibt an, wo Sie das Element entfernen möchten, und der Operator rest (... arr), um die verbleibenden Elemente des Arrays anzuzeigen.
quelle
Array.splice()
hat die interessante Eigenschaft, dass man damit das erste Element nicht entfernen kann. Wir müssen also darauf zurückgreifenquelle
Typoskript-Lösung, die das ursprüngliche Array nicht mutiert
quelle
Es gibt mehrere Möglichkeiten, ein Element aus einem Array zu entfernen. Lassen Sie mich unten auf die am häufigsten verwendeten Optionen hinweisen. Ich schreibe diese Antwort, weil ich aus all diesen Optionen keinen richtigen Grund für die Verwendung finden konnte. Die Antwort auf die Frage lautet Option 3 ( Splice () ).
1) SHIFT () - Entfernen Sie das erste Element aus dem ursprünglichen Array und geben Sie das erste Element zurück
Siehe Referenz für Array.prototype.shift () . Verwenden Sie diese Option nur, wenn Sie das erste Element entfernen möchten, und nur, wenn Sie mit dem Ändern des ursprünglichen Arrays einverstanden sind.
2) SLICE () - Gibt eine Kopie des Arrays zurück, die durch einen Anfangsindex und einen Endindex getrennt ist
Siehe Referenz für Array.prototype.slice () . Sie können ein bestimmtes Element nicht aus dieser Option entfernen. Sie können nur das vorhandene Array in Scheiben schneiden und einen kontinuierlichen Teil des Arrays abrufen. Es ist so, als würde man das Array aus den von Ihnen angegebenen Indizes ausschneiden. Das ursprüngliche Array wird nicht beeinflusst.
3) SPLICE () - Ändern Sie den Inhalt des Arrays, indem Sie Elemente an bestimmten Indizes entfernen oder ersetzen.
Siehe Referenz für Array.prototype.splice () . Die splice () -Methode ändert den Inhalt eines Arrays, indem vorhandene Elemente entfernt oder ersetzt und / oder neue Elemente hinzugefügt werden. Gibt ein aktualisiertes Array zurück. Das ursprüngliche Array wird aktualisiert.
quelle
Sie können dies auch mit reduzieren tun:
quelle