Я использую Facebook's Immutable.js, чтобы ускорить приложение React, чтобы воспользоваться PureRender mixin. Одна из моих структур данных - Map()
, и один из ключей на этой карте имеет значение List<Map>()
. Мне интересно, не зная индекс элемента, который я хочу удалить из List()
, что это лучший способ его удалить? До сих пор я придумал ниже. Это лучший (самый эффективный) способ?Лучший способ удалить элемент из списка внутри карты в Immutable.js
// 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]);
}
(. Я рассмотрел перемещение List<Map>()
к Map()
самого, поскольку каждый элемент в списке имеет UUID, однако, я не в тот момент еще)
Конечно гораздо более кратким, чем у меня! И да, решения, которые у вас и у меня есть, я не думаю, что это можно сделать более эффективным, не переключаясь на «карту». –
вы можете использовать [updateIn] (https://facebook.github.io/immutable-js/docs/#/List/updateIn) вместо повторения 'this.graphs.getIn ([graphId, "metrics"]) '. – YakirNa