2017-07-10 13 views
1

不変のマップから特定のキー/値を選択して新しいオブジェクト/マップに戻す良い方法はありますか?あまりにも私が現在持っているものに対して線形ようだ:ImmutableJSの値を新オブジェクトにマップする

const depart = flightStatusState.getIn(['activeTraveller', 'outbound', 'departMapData']) 
const arrive = flightStatusState.getIn(['activeTraveller', 'outbound', 'arriveMapData']) 

const departLat = depart.get('lat'); 
const departLng = depart.get('lng'); 
const arriveLat = arrive.get('lat'); 
const arriveLng = arrive.get('lng'); 

const outboundMapDataLatLngs = [{ lat: departLat, lng: departLng }, { lat: arriveLat, lng: arriveLng }] 

答えて

1

私は不変地図上M.pickByを使用するMudashImmutableJSサポートとLodashの変化を発見したので、同様に次のことを成し遂げ:

const outbound = flightStatusState.getIn(['activeTraveller', 'outbound']) 
const outboundMapData = List.of(outbound.get('departMapData'), outbound.get('arriveMapData')) 

const outboundMapDataLatLngs = outboundMapData.map(destination => 
    M.pickBy(destination, (value, key) => 
    _.startsWith(key, "l") 
) 
) 

(私が必要outboundMapData別に2行目)

それは最後の行を使用してネストされた緯度/経度をそれ自身のエンティティに抽出します。次に、ImmutableJSのtoJS()は、それをレンダリングするのに必要なコンポーネントのoutboundMapDataLatLngsに使用されます。

関連する問題