Immutable.js:如何在导出到数组时保持不变性
Immutable.js: How to maintain immutability when exporting to array?
我将一个数组传递给一个不可变的列表对象。然而,当列表被转换为一个数组时,不可变的列表对象会被修改,该数组随后被更新。
因此,不可变列表仍然是可变的,我如何避免这种情况,同时仍然能够返回一个数组进行处理?
请同时提供解释。下面是一些psuedo代码来说明这个场景:
var data = [{id:'a'}, {id:'b'}, {id:'c'}];
var immutables = Immutable.List(data).asImmutable(); //Immutable list?
var myData = immutables.toArray();
myData[0] = {id:'x'}; //object is updated in immutable list as well
在不可变结构中包含可变数据几乎总是一个坏主意。(从另一方面来说,这更有意义)。为了避免这种情况,请使用Immutable.fromJS(数据),而不是Immutable.List(数据)和Immutable.Map(数据)-正如@mostruesh所建议的那样。
相关文章:
- 我需要迭代一个JSON数组——不知道如何做到——已经搜索过了,但仍然可以'我一点也不知道
- 通过AJAX从具有LazyLoadingEnabled=true的EF返回的数组不正确
- For循环与数组不起作用
- Lodash 从与值数组不匹配的数组中获取项目
- 循环浏览页面上所有选中的复选框并将id拉入数组不起作用
- 文本框搜索/Javascript函数数组**不对应**
- 带有附加元素的新数组不会可视化
- 映射 jQuery 对象的数组不起作用
- Javascript-自定义数组不起作用
- AngularStrap Select和ng选项don'使用动态数组不能很好地工作
- 函数中的Javascript数组不起作用
- Knockout.js多个可观察数组不工作
- 角度数组不会显示嵌套数组
- Js browserify 需要从字符串数组不起作用
- Javascript 对象数组不返回正确的值
- 使用 Moment.js 制作本周日期的数组不会添加到数组中
- 使用 JavaScript 比较 2 个数组并创建一个新的对象数组,该数组不包含与 id 字段匹配的对象
- 确保我的随机值数组不包含重复值
- Dojo JsonRestStore 的数组不在 JSON 响应的根级别
- 节点.js遍数组不显示整个对象