Beste Weg, um entfernen Sie ein element aus einer Liste innerhalb der Karte in Immutable.js
Ich bin mit Facebook ist Immutable.js, um die Geschwindigkeit meiner Anwendung Reagieren, um die Vorteile der PureRender mixin. Einer meiner Daten-Strukturen ist ein Map()
und einer der Schlüssel, diese Karte hat einen List<Map>()
als Wert. Was ich Frage ist, nicht zu wissen, der index des Elements, die ich entfernen wollen, aus der List()
, was ist der beste Weg, es zu entfernen? So weit ich gekommen bin mit der unten. Ist dies der beste (effizienteste) Weg?
//this.graphs is a Map() which contains a List<Map>() under the key "metrics"
onRemoveMetric: function(graphId, metricUUID) {
var index = this.graphs.getIn([graphId, "metrics"]).findIndex(function(metric) {
return metric.get("uuid") === metricUUID;
});
this.graphs = this.graphs.deleteIn([graphdId, "metrics", index]);
}
(Ich habe überlegt die List<Map>()
zu einem Map()
sich, da jedes element in der Liste hat eine UUID, allerdings bin ich nicht an diesem Punkt noch nicht.)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Könnten Sie
Gekennzeichnet.- filter
:Aus performance-Sicht wechseln, um eine Karte wäre wahrscheinlich effizienter sein, als Sie diesen code (wie bei Euch) hat zur Iteration über die Elemente in der Liste.
Map
.this.graphs.getIn([graphId, "metrics"])
.Mit updateIn wie vorgeschlagen von @YakirNa dies wird wie folgt Aussehen.
ES6:
ES5: