将新项目推送到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"}
答案 0 :(得分:1)
合并使用合并列表的当前值更新索引。
您有:[111, 222, 333]
和[444]
,此处
[0] = 111
与[0] = 444
合并,给出了结果列表 为[444, 222, 333]
。
此外,mergeDeepIn
是updateIn
的封装(与mergeDeep
结合使用) - 更多详情为here。