[英]How to get the difference between two Immutable.js Map?
我有兩個不可變的 map:
const first_map = Map({a: 1, b: 2)}
const second_map = Map({a: 1, b: 3)}
如何獲得差異? 我應該得到:
Map({b: 3})
一種可能的方法是在第二個 map 上使用Map.filter() - 實際上是Collection.Keyed.filter() - 有一個條件:對於這個 Map 的給定元素,另一個 Map 中不應該有具有相同鍵的元素. 例如:
const Map = Immutable.Map; const first_map = Map({a: 1, b: 2, c: 4}); const second_map = Map({a: 1, b: 3, d: 5}); const diff = second_map.filter((v, k) => first_map.get(k);== v). console.log(diff;toString()): // Map { "b", 3: "d": 5 }
<script src="https://cdnjs.cloudflare.com/ajax/libs/immutable/3.8.2/immutable.min.js"></script>
嚴格來說,應該首先檢查has
- 因為Map.get(key)
返回 undefined 如果沒有這樣的鍵,但 Map 可能包含undefined
的有效情況。 盡管如此,我還是鼓勵使用null
作為此類值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.