2017-04-12 95 views
0

我對使用Immutable.js的React比較陌生。 比方說,我有一個30個項目的(有序)地圖,其中一些有綠色和一些紅色。 現在我想把這個地圖分成兩個地圖,一個包含前五個綠色物品,另一個包含其餘的(綠色物品和紅色物品的其餘部分)。如何根據條件將地圖拆分爲兩張地圖

如果我有一個數組,我只需定義兩個結果數組,遍歷我的src數組並將這些項放入它們的相應結果數組中。如果我使用immutable.js來做到這一點,那麼每次改變時都需要創建一個新的Map。這仍然是要走的路,還是有更快/更優雅的方式來實現這一目標?

在此先感謝!

回答

0

如果我有問題的權利,最優雅的方式是使用Map.filter

const { Map } = Immutable; 
 
const sourceMap = new Map({ 
 
    key1: { color: "red" }, 
 
    key2: { color: "green" }, 
 
}); 
 
const filterMap = c => sourceMap.filter(({ color }) => color === c); 
 
const greenMap = filterMap("green"); 
 
const redMap = filterMap("red");
<script src="https://cdnjs.cloudflare.com/ajax/libs/immutable/3.8.1/immutable.min.js"></script>

相關問題