我想在我拥有的地图中的某个键上更改值.除了一个事实,即使用update
会给我一个错误,如果我问更新不存在的关键,什么好处是有(如果有的话)使用update
过set
?我发现set
它更加简洁/清洁.事实上,基于文档人们可以(盲目)认为,set
实际上比更有效update
,因为set
没有执行get
的updater
功能.
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})
与set
:
m.set('b', inc(m.get('b'))
这个例子非常简单,但是当您开始围绕数据构建算法(如在FP中)而不是相反的方式时,以这种方式应用变换到数据的模式变得更加常见.我之前在比赛中做过一些事情game.update('player', moveLeft)
.
但是,如果您知道新值是什么,那么就像使用它set
一样update(key, x => val)
相当愚蠢.