Ich habe:
var array = new Array();
array.push("A");
array.push("B");
array.push("C");
Ich möchte in der Lage sein, etwas zu tun wie:
array.remove("B");
Es gibt jedoch keine Entfernungsfunktion. Wie schaffe ich das?
javascript
arrays
Rolando
quelle
quelle
.indexOf()
und.splice()
sollte den Trick machen. Oder vielleicht alternativ.filter()
.Antworten:
Ich aktualisiere diesen Thread tatsächlich mit einer neueren 1-Zeilen-Lösung:
Die Idee besteht im Wesentlichen darin, das Array zu filtern, indem alle Elemente ausgewählt werden, die sich von dem Element unterscheiden, das Sie entfernen möchten.
Hinweis: Entfernt alle Vorkommen.
BEARBEITEN:
Wenn Sie nur das erste Vorkommen entfernen möchten:
quelle
Durchlaufen Sie die Liste in umgekehrter Reihenfolge und verwenden Sie die
.splice
Methode.Die umgekehrte Reihenfolge ist wichtig, wenn alle Vorkommen des Suchbegriffs entfernt werden müssen. Andernfalls erhöht sich der Zähler und Sie überspringen Elemente.
Wenn nur das erste Vorkommen entfernt werden muss, funktioniert auch Folgendes:
quelle
0
ist nicht automatisch schneller als beispielsweise in C. Solange Sie das Limit zwischenspeichern, würde dies natürlich die Sache komplizieren, wenn Sie nach dem ersten Spiel weitermachen (aber nicht, wenn Sie damit aufhören).Liste der Einzeiler
Lösen wir dieses Problem für dieses Array:
1. Entfernen Sie nur das erste: Verwenden Wenn Sie sicher sind, dass das Element vorhanden ist
2. Entfernen Sie nur das letzte: Verwenden Sie, wenn Sie sicher sind, dass das Element vorhanden ist
3. Entfernen Sie alle Vorkommen:
quelle
DEMO
Sie müssen den Ort finden, mit dem Sie suchen
.indexOf()
, und ihn dann mit entfernen.splice()
Dies wird sich um alle Vorkommnisse kümmern.
quelle
.indexOf()
, können Sie dies zu Ihrer Javascript-Datei hinzufügen .Uncaught ReferenceError: array is not defined
. Was ist falsch?.indexOf()
ein wenig mehr nutzen. Wenn Siefound
als zweites Argument an den.indexOf()
Aufruf innerhalb der while-Schleife übergeben , werden die Elemente im Array, die bereits überprüft wurden und am Ende nicht gleich waren, nicht erneut überprüft:found = arr.indexOf(what, found);
Einfach
quelle
-1
wenn nichts gefunden wird und whoops, splice löscht 1 Element am Ende des ArraysEinfache Lösung (ES6)
Wenn Sie kein doppeltes Element haben
Online-Demo (Geige)
quelle
Sie müssen schreiben, dass Sie selbst entfernen. Sie können das Array durchlaufen, den Index des Elements abrufen, das Sie entfernen möchten, und es
splice
zum Entfernen verwenden.Alternativ können Sie ein neues Array erstellen, das aktuelle Array durchlaufen und das aktuelle Objekt, wenn es nicht mit dem übereinstimmt, was Sie entfernen möchten, in ein neues Array einfügen.
quelle
verwenden:
Dadurch wird ein Element aus dem Array entfernt, beginnend mit Index 2 (3. Element).
quelle
array.splice(2,1)
dem 1 Element am Index 2 aus dem Array entfernt wird. Weitere Informationen finden Sie unter https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/spliceoder Sie können verwenden:
Das geänderte Array enthält den Wert 'B' ohne Wert.
quelle
Verwenden Sie array.splice
Quelle: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/splice
quelle
array
undsplice
muss ein Punkt sein.