簡體   English   中英

如何獲得兩個 Immutable.js Map 之間的區別?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM