通过自定义键将序列转换为地图
Convert Seq to Map by custom key
如何将
以下JavaScript数组转换为由列表中每个对象的"id"键控的不可变映射?
id: 'all',
label: 'All',
isSelected: false
}, {
id: '1',
label: '1',
isSelected: true
}, {
id: '2',
label: '2',
isSelected: false
}, {
id: '3',
label: '3',
isSelected: false
}]
我希望能够做到:
// {id: 'all', label: 'All', isSelected: true}
这可以使用不可变的JS完成,如下所示。
var buttons = [{
id: 'all',
label: 'All',
isSelected: false
}, {
id: '1',
label: '1',
isSelected: true
}, {
id: '2',
label: '2',
isSelected: false
}, {
id: '3',
label: '3',
isSelected: false
}];
buttonImmutableList = Immutable.fromJS(buttons)
buttonImmutableMap = buttonImmutableList.reduce((a,c)=> a.set(c.get('id'),c), Immutable.Map())
使用不可变:
var buttons = [{
id: 'all',
label: 'All',
isSelected: false
}, {
id: '1',
label: '1',
isSelected: true
}, {
id: '2',
label: '2',
isSelected: false
}, {
id: '3',
label: '3',
isSelected: false
}];
var array = {};
for(var index in buttons) {
var token = buttons[index];
array[token.id] = token;
}
var map = new Immutable.Map(array);
var test = map.get('all');
window.alert(test.label);
如果以后要添加键 -> 值,则会修改映射,从而使当前实例失效。为此,您需要将变量map
重新分配给最新返回的有效实例:
map = map.set(key, value);
相关文章:
- 使用地图框 API 将邮政编码转换为纬度和经度
- 谷歌地图数据类型抛出类型错误:can't将未定义转换为对象
- 将xml站点地图转换为可用链接的JavaScript
- 将诸如“;纽约水牛城”;使用Google Maps API将地图转换为纬度和经度
- javascript/谷歌地图:将位置对象转换为字符串
- OpenLayers:自动将 EPSG 4326 - 文本图层的坐标转换为地图的投影 (EPSG:900913)
- jQuery - 将文本转换为谷歌地图链接
- 将 XML 多边形转换为谷歌地图
- 谷歌地图和GeoJSon:纬度和经度转换
- 通过自定义键将序列转换为地图
- 将显示为 XML 格式的 Google 地图位置转换为输出 (ASP.Net、C#)
- 如何将位置从窗口手机7的观察者转换为谷歌地图的位置
- 谷歌地图API V3:getBounds()转换fitBounds的结果()
- 将 Google 地图多边形路径转换为 SVG 路径
- 将谷歌地图样式转换为谷歌静态地图 URI 时出现问题
- 在谷歌地图V3中将KM转换为折线叠加层
- 如何将经度/纬度转换为静态地图图像
- 如何将图像像素转换为纬度和液化天然气中的相同位置以供谷歌地图使用
- 将不可变.js地图列表转换为列表列表,然后将其用作Google图表的数据
- 如何在地图上转换谷歌地图控制