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;i console.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]
]