javascript - Immutable.js map 集与更新

标签 javascript immutable.js

我想更改我拥有的 map 中某个键的值。如果我要求更新的 key 不存在,使用 update 会给我一个错误,除了这个事实之外,使用 update 有什么好处(如果有的话) 设置?我发现 set 明显更简洁/更清晰。事实上,根据文档,人们可以(盲目地)争辩说 set 实际上比 update 更有效,因为 set 不必执行updater 函数的 get

最佳答案

当您的新值是当前值转换的结果时,

update 更强大:

const inc = (x) => (x + 1)
const m = Immutable.Map({a: 1, b: 2, c: 3})
m.update('b', inc) #=> {a: 1, b: 3, c: 3})

对比使用设置:

m.set('b', inc(m.get('b'))

这个示例非常简单,但是当您开始围绕数据构建算法(如 FP )而不是相反时,以这种方式对数据应用转换的模式会变得更加普遍。我以前在游戏中做过类似 game.update('player', moveLeft) 的事情。

如果您知道新值是什么,那么只需使用 set 作为 update(key, x => val) 是相当愚蠢。

关于javascript - Immutable.js map 集与更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34427221/

相关文章:

javascript - 为什么在父子之间传递的 Prop 数据在 VueJS 中不起作用?

javascript - 如何为我的文本框使用此 trim 功能

javascript - 如何在 ng-repeat 中显示 JSON object.array.object?

javascript - 在reactjs中返回带有更新数组的整个对象

javascript - 不可变 typescript 类型定义 : why is concat operating on any?

javascript - 为什么 Map() === Map() 评估为真?

javascript - Highcharts zIndex 十字准线问题

Javascript sort() 不适用于 Chrome 中超过 10 个对象的数组

immutable.js - 为什么我的简单对象不使用 Immutable.fromJS({}) 转换为 Immutable.Map()

javascript - Flux/Alt 未从商店更新 Prop