不可变js地图填充
Immutable js Map population
我试图填充一个不可变的JS地图。给定一个字段数组和一个表单,例如
{form: 'Register', fields: ['name','firstname']}
我想要得到这样的东西:
{ form :
{ name: {
value: '',
hasFeedback: false
},
firstname: {
value: '',
hasFeedback: false
}
}
}
我的当前代码:
let newState = state;
fields.forEach((field) => {
newState = newstate.setIn([form, field, 'value'], '');
newState = newstate.setIn([form, field, 'hasFeedback'], false);
});
return newState;
我对整个不可变的东西很陌生:这是填充不可变映射的正确方式吗?我违反了不变性的惯例吗?这是最优雅的方式吗?
我不知道有什么约定,但最好先创建所需的结构,然后使用Immutable.fromJS
进行转换。像现在这样一个接一个地应用突变,会产生一些不必要的开销。
可能重构的代码:
var form = fields.reduce((acc, f) => {
acc.form[f] = {
value: '',
hasFeedback: false
};
return acc;
}, {form: {}});
var immutableForm = Immutable.fromJS(form);
相关文章:
- 谷歌地图API没有;t显示地图,如果中心由javascript函数填充
- 在谷歌地图上的交叉路口2,3..圆圈中填充不同的颜色
- 如何从数据库中填充谷歌地图信息框
- 如何用数组而不是值正确填充谷歌图表(地图)
- 谷歌地图适合带填充的边界
- D3js 地理地图,具有基于百分比的动态填充
- 如何在信息窗口中填充下拉列表(谷歌地图API v3)
- 美国地图拉菲尔插件自动更新和动态填充颜色
- 从 JSON 填充谷歌地图标记
- 如何填充谷歌地图数据图层的颜色
- 用单个磁贴填充谷歌地图视口
- 无法在谷歌地图符号 (svg) 标记中填充颜色
- 有效的geoJson未填充谷歌地图标记
- 使用 Google Maps JavaScript API 使用 SQL 数据库中的数据填充地图
- 从数据库填充谷歌地图信息窗口
- 使谷歌地图填充高度
- 拉斐尔地图填充颜色
- 获取或填充自定义变量与谷歌地图方向的响应
- 使用一个点数组来填充多个谷歌地图的更好方法
- 读取.property文件并在javascript中填充地图的可能方法是什么?