mergeDeepIn()将新项目推送到immutable.js中的List

时间:2016-09-10 09:54:33

标签: javascript immutable.js

Example

将新项目推送到number这是一个列表的最佳方法是什么?

var data = {group:{number:[111,222,333]},status:'okay'}
var state = Immutable.fromJS(data)
state = state.mergeDeepIn(['group','number'],[444])
console.log(JSON.stringify(state.toJS()))

正如您在控制台中看到的那样,输出变为:

{"group":{"number":[444,222,333]},"status":"okay"}

mergeDeepIn()为什么用111替换第一项444?我认为它会将444附加到现有的List中,如下所示:

{"group":{"number":[111,222,333,444]},"status":"okay"}

1 个答案:

答案 0 :(得分:1)

合并使用合并列表的当前值更新索引。

您有:[111, 222, 333][444],此处

  

[0] = 111[0] = 444合并,给出了结果列表   为[444, 222, 333]

此外,mergeDeepInupdateIn的封装(与mergeDeep结合使用) - 更多详情为here