Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/452.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在Immutable.js中将列表添加到列表中?_Javascript_Reactjs_Immutable.js - Fatal编程技术网

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数组或对象视为一个集合”。基本上,您还可以检查: