Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/470.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/arrays/14.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上展平数组?_Javascript_Arrays_Flatten - Fatal编程技术网

如何在javascript上展平数组?

如何在javascript上展平数组?,javascript,arrays,flatten,Javascript,Arrays,Flatten,我有代码[1,2,3,fn(),7,8] fn执行以下操作: fn(){ return [ 5, 6 ] } 要应用于fn()调用以获取的运算符: [ 1, 2, 3, 5, 6, 7, 8 ] 而不是: [ 1, 2, 3, [ 5, 6 ], 7, 8 ] 当然,有可能做到: [ 1, 2, 3, fn(), 7, 8 ].flat() 但在这种情况下,其他元素也将变平。我只需要对fn()进行展平调用fn时,将其放入正在创建的数组中: constfn=()=>[5,6]; 常量ar

我有代码
[1,2,3,fn(),7,8]

fn
执行以下操作:

fn(){ return [ 5, 6 ] }
要应用于
fn()
调用以获取的运算符:

[ 1, 2, 3, 5, 6, 7, 8 ]
而不是:

[ 1, 2, 3, [ 5, 6 ], 7, 8 ]
当然,有可能做到:

[ 1, 2, 3, fn(), 7, 8 ].flat()

但在这种情况下,其他元素也将变平。我只需要对
fn()

进行展平调用
fn
时,将其放入正在创建的数组中:

constfn=()=>[5,6];
常量arr=[1,2,3,…fn(),7,8,[9,10]]

控制台日志(arr)调用
fn
时,将其插入正在创建的数组中:

constfn=()=>[5,6];
常量arr=[1,2,3,…fn(),7,8,[9,10]]
控制台日志(arr)以数组的形式返回输入数组中每个元素的回调函数值,然后返回该数组。例如,可以进行回调以返回以下内容:

  • 一对一:返回[]
  • 一对一:返回[]
  • 一对多:返回[值,值-5,任意值]
在演示中,如果值是一个数组——它将按原样返回——否则它将在数组中返回。本质上,所有值都将作为数组从回调中返回,而数组又会变平。
constfn=()=>[5,6];
设数组=[1,2,3,4,fn(),7,8];
const result=array.flatMap(node=>array.isArray(node)?node:[node]);
控制台日志(结果)以数组的形式返回输入数组中每个元素的回调函数值,然后返回该数组。例如,可以进行回调以返回以下内容:

  • 一对一:返回[]
  • 一对一:返回[]
  • 一对多:返回[值,值-5,任意值]
在演示中,如果值是一个数组——它将按原样返回——否则它将在数组中返回。本质上,所有值都将作为数组从回调中返回,而数组又会变平。
constfn=()=>[5,6];
设数组=[1,2,3,4,fn(),7,8];
const result=array.flatMap(node=>array.isArray(node)?node:[node]);

控制台日志(结果)我只需要展平
fn()
。如果第二个元素是
[2]
我只需要对
fn()
进行展平,则不需要将其展平。如果第二个元素是
[2]