有一种很好的方法可以从不可变地图中选择某些键/值以返回到新的对象/地图吗?似乎与我目前的情况过于线性:
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 }]
答案 0 :(得分:1)
我在ImmutableJS中找到了Mudash支持的Lodash变体,以便在Immutable地图上使用M.pickBy
并完成以下操作:
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
以及第二行)
然后它只使用最后一行将嵌套的lat / lngs挑选到它自己的实体中。然后来自ImmutableJS的toJS()
在outboundMapDataLatLngs
上用于呈现它所需的组件。