mergeDeepIn() 将新项目推送到 immutable.js 中的列表
mergeDeepIn() to push an new item to a List in immutable.js
将新项目推送到列表的 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
附加到现有列表中:
{"group":{"number":[111,222,333,444]},"status":"okay"}
Merge 使用合并列表的当前值更新索引。
您有:[111, 222, 333]
和 [444]
,此处
[0] = 111
is merged it with [0] = 444
giving the resulting list
as [444, 222, 333]
.
此外,mergeDeepIn
是 updateIn
的包装(与 mergeDeep
相结合)- 更多细节是 here.
将新项目推送到列表的 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
附加到现有列表中:
{"group":{"number":[111,222,333,444]},"status":"okay"}
Merge 使用合并列表的当前值更新索引。
您有:[111, 222, 333]
和 [444]
,此处
[0] = 111
is merged it with[0] = 444
giving the resulting list as[444, 222, 333]
.
此外,mergeDeepIn
是 updateIn
的包装(与 mergeDeep
相结合)- 更多细节是 here.