Ich habe ein Array mit mehreren Objekten. Meine App verfügt über eine Option zum Filtern der Objekte und zum Zurückgeben des gefilterten Arrays. DieseAngular 2 entfernen mehrere Objekte aus einem Array
ist, wie ich das tun:
this.result.combos.forEach((combo) => {
console.log("Analyzing combo:");
console.log(combo);
if (combo.atk < minStat || combo.atk > maxStat)
{
this.result.combos.splice(this.result.combos.indexOf(combo), 1);
console.log("COMBO HAS BEEN REMOVED");
}
else
console.log("COMBO HAS BENE STAYED");
});
Mein Problem ist, dass ich diese Methode mehrmals ausführen, um das Ergebnis zu erreichen. Bei jeder Ausführung dieser Methode werden meine Objekte teilweise gefiltert.
Zum Beispiel: Ich habe 200 Objekte, und ich filtere den minStat/maxStat Wert von ihnen, um mir nur die Datensätze mit minStat/maxStat Wert von 50/100 zu zeigen. Der Code wird etwa 70 Datensätze aus dem Array entfernen, aber viele Ergebnisse ohne einen minStat/maxStat von 50-100 bleiben.
Ich habe graben in diesem und ich denke, es ist auf die splice
Methode related. aber ich fand keine Alternative zu diesem Problem.
Irgendwelche Hilfe?
Verwenden Sie die array.filter-Methode –