Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/429.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/12.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_Mapping - Fatal编程技术网

Javascript 将嵌套数组转换为单个数组

Javascript 将嵌套数组转换为单个数组,javascript,arrays,mapping,Javascript,Arrays,Mapping,有人能帮我从现有阵列生成一个新阵列吗。这是我的数组(示例) 这就是我想要实现的目标 [ [1,2,3,9,5,7], [1,2,4,9,5,7], [1,2,3,9,6,7], [1,2,4,9,6,7], [1,2,3,9,5,8], [1,2,4,9,5,8], [1,2,3,9,6,8], [1,2,4,9,6,8] ] 谢谢 编辑 因为我想对嵌套数组进行适当的组合。我认为这不会有帮助。这看起来像是这样,您可以为此创建递归函数 var数据=[1,2,3,4,9,5,6,

有人能帮我从现有阵列生成一个新阵列吗。这是我的数组(示例)

这就是我想要实现的目标

[
 [1,2,3,9,5,7],
 [1,2,4,9,5,7],
 [1,2,3,9,6,7],
 [1,2,4,9,6,7],
 [1,2,3,9,5,8],
 [1,2,4,9,5,8],
 [1,2,3,9,6,8],
 [1,2,4,9,6,8]
]
谢谢

编辑 因为我想对嵌套数组进行适当的组合。我认为这不会有帮助。

这看起来像是这样,您可以为此创建递归函数

var数据=[1,2,3,4,9,5,6,7,8];
函数转换(数据,n=0,c=[],r=[]){
if(n==data.length)返回r.push(c.slice());
设el=Array.isArray(数据[n])?数据[n]:[data[n]]
对于(变量i=0;iconsole.log(JSON.stringify(convert(data))
另一种方法,它从数据中的第一个元素创建第一个元素,然后在
reduce()中从该基映射新数组

var数据=[1,2,3,4,9,5,6,7,8];
const base=data.map(e=>Array.isArray(e)?e[0]:e);
const res=数据减少((a,el,dIdx)=>{
if(数组isArray(el)){
让newArrs=el.slice(1.map)(nVal=>{
返回[…a.map(arr=>arr.map((val,i)=>i==dIdx?nVal:val));
})
返回a.concat(…newArrs)
}
返回a;
},[base]);

console.log(JSON.stringify(res))
@MartinHeralecký我仍在试图找到一种合适的方法来做到这一点。我只是需要一个领先的开始。thanks@user184994不,我看了那个答案。我认为concat在这里不起作用。@user184994这不是一个简单的问题flattening@charlietfl没错。这个数组的动态性如何?例如,倍数总是在同一个位置吗?哦,哇。它起作用了。非常感谢你。这对我有用,不用谢。
[
 [1,2,3,9,5,7],
 [1,2,4,9,5,7],
 [1,2,3,9,6,7],
 [1,2,4,9,6,7],
 [1,2,3,9,5,8],
 [1,2,4,9,5,8],
 [1,2,3,9,6,8],
 [1,2,4,9,6,8]
]