我想更改我拥有的 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/