Ich habe eine Reihe von Objekten wie folgt:
var myArray = [
{field: 'id', operator: 'eq', value: id},
{field: 'cStatus', operator: 'eq', value: cStatus},
{field: 'money', operator: 'eq', value: money}
];
Wie entferne ich eine bestimmte basierend auf ihrer Eigenschaft?
zB Wie würde ich das Array-Objekt mit 'money' als Feldeigenschaft entfernen?
javascript
jquery
arrays
object
properties
imperium2335
quelle
quelle
filter()
nur für Internet Explorer 9+filter()
Erstellt ein neues Array. Dies ist in Ordnung, wenn Sie die Variable neu zuweisen können und wissen, dass es keine anderen Codebereiche gibt, auf die verwiesen wird. Dies funktioniert nicht, wenn Sie das ursprüngliche Array-Objekt speziell ändern müssen.Durchlaufen Sie das Array und
splice
diejenigen, die Sie nicht möchten. Iterieren Sie zur einfacheren Verwendung rückwärts, damit Sie die Live-Natur des Arrays nicht berücksichtigen müssen:quelle
Angenommen, Sie möchten das zweite Objekt anhand seiner Feldeigenschaft entfernen.
Mit ES6 ist das so einfach.
quelle
splice
das ursprüngliche Array, sodass der Wert, den Sie zurückerhalten, das Element ist, das entfernt wurde, aber wenn Sie sichmyArray
das Element das nächste Mal ansehen , wird es fehlen.Sie können den findIndex von lodash verwenden , um den Index des jeweiligen Elements abzurufen und dann damit zu verbinden.
Aktualisieren
Sie können auch findIndex () von ES6 verwenden.
quelle
myArray
hier ist eine Reihe von Objekten.Hier ist eine weitere Option mit jQuery grep. Übergeben Sie
true
als dritten Parameter, um sicherzustellen, dass grep Elemente entfernt, die Ihrer Funktion entsprechen.Wenn Sie jQuery bereits verwenden, ist kein Shim erforderlich, was im Gegensatz zur Verwendung nützlich sein kann
Array.filter
.quelle
In ES6 nur eine Zeile.
:) :)
quelle
Im Folgenden finden Sie den Code, wenn Sie jQuery nicht verwenden. Demo
Sie können auch eine Unterstrichbibliothek verwenden, die viele Funktionen hat.
Underscore ist eine Utility-Belt-Bibliothek für JavaScript, die einen Großteil der Unterstützung für die funktionale Programmierung bietet
quelle
Element ist ein Objekt im Array. 3. Parameter
true
bedeutet, dass ein Array von Elementen zurückgegeben wird, bei denen Ihre Funktionslogik fehlschlägt.false
Mittel bedeutet, dass ein Array von Elementen zurückgegeben wird, bei denen Ihre Funktionslogik nicht funktioniert.quelle
Nutzung der lodash- Bibliothek:
quelle
Basierend auf einigen Kommentaren oben ist der Code zum Entfernen eines Objekts basierend auf einem Schlüsselnamen und einem Schlüsselwert
quelle
Die Lösung von jAndy ist wahrscheinlich die beste, aber wenn Sie sich nicht auf Filter verlassen können, können Sie Folgendes tun:
quelle
Mit der lodash Bibliothek ist das ganz einfach
quelle