Javascript 如何在Immutable.js中将列表添加到列表中?
将列表添加到中的列表的最佳方式是什么Javascript 如何在Immutable.js中将列表添加到列表中?,javascript,reactjs,immutable.js,Javascript,Reactjs,Immutable.js,将列表添加到中的列表的最佳方式是什么 concat方法有效,但另一种方法无效 const a = fromJS([ { comment: 'aaaa', who: 'a1', buttonInfo: ['a', 'b', 'c'], }, {
concat
方法有效,但另一种方法无效
const a = fromJS([
{
comment: 'aaaa',
who: 'a1',
buttonInfo: ['a', 'b', 'c'],
},
{
comment: 'bb',
who: 'a2',
buttonInfo: ['a', 'b', 'c'],
},
]);
const b = fromJS([
{
comment: 'ccc',
who: 'c1',
buttonInfo: ['a', 'b'],
},
{
comment: 'ddd',
who: 'd2',
buttonInfo: ['a''],
},
]);
这是有效的:
a.concat(b)
但这是行不通的:
[...a ,...b]
// or
b.map(v => {
a.push(v);
})
ImmutableJS列表有一个名为concat的方法,其行为与普通javascript数组相同。但是,不能对不可变数组使用扩展语法 push的语法也不同于普通数组,push-like concat with-Immutable List返回一个新列表,您的map方法如下所示
b.map(v => {
a = a.push(v);
})
不过,请注意,使用上述方法将使您的数组a
发生变异。如果要使用push,必须创建一个新列表,然后将两个数组内容都推入其中。然而,concat
是解决您的问题的最佳方法
您可以使用concat方法,如文档中所述:
const list1=List([1,2,3]);
const list2=列表([4,5,6]);
常量数组=[7,8,9];
const list3=list1.concat(list2,数组);
//列表[1、2、3、4、5、6、7、8、9]
要将列表添加到列表中,可以使用合并方法
例如:
const a = fromJS(
[
{
comment: 'aaaa',
who: 'a1',
buttonInfo: ['a', 'b', 'c'],
},
{
comment: 'bb',
who: 'a2',
buttonInfo: ['a', 'b', 'c'],
},
]
);
const b = fromJS(
[
{
comment: 'ccc',
who: 'c1',
buttonInfo: ['a', 'b'],
},
{
comment: 'ddd',
who: 'd2',
buttonInfo: ['a''],
},
]
);
a.merge(b);
取决于你想要什么。您可以同时使用merge和concat cause:“Immutable.js可以将任何JavaScript数组或对象视为一个集合”。基本上,您还可以检查: