为了账号安全,请及时绑定邮箱和手机立即绑定

js遍历多个数组,实现元素交叉

js遍历多个数组,实现元素交叉

茅侃侃 2019-07-27 00:05:37
有多个数组(个数不一定!!很重要),例如:letarr1=[1,2],arr2=[3,4],arr3=[5,6];我想要这种结果:[1-3-5,1-3-6,1-4-5,4-4-6,2-3-5,2-3-6,2-4-5,2-4-6,]请问有没有同学用js实现过这种效果,求解。
查看完整描述

2 回答

?
神不在的星期二

TA贡献1963条经验 获得超6个赞

letsource=[
[1,2],
[3,4],
[5,6],
]
//计算2个数组时一共组合情况
functionreduceTwoArr(source1,source2){
letresult=[]
source1.forEach(item=>{
source2.forEach(item2=>{
result.push(`${item}${item2}`)
})
})
returnresult
}
//计算多个数组时一共组合情况
functionreduceMultipleArr(arr=[]){
returnarr.reduce((acc,currentItem)=>{
returnreduceTwoArr(acc,currentItem)
})
}
letresult=reduceMultipleArr(source)
console.log(result)
GitHub
                            
查看完整回答
反对 回复 2019-07-27
?
炎炎设计

TA贡献1808条经验 获得超4个赞

结果示例里的第四行应该是1-4-6而不是4-4-6吧
letarr1=[1,2],arr2=[3,4],arr3=[5,6];
functionwhatever(...arrs){
returnarrs.reduce((arr1,arr2)=>arr1.flatMap(e=>arr2.map(e2=>`${e}-${e2}`)))
}
letresult=whatever(arr1,arr2,arr3)
                            
查看完整回答
反对 回复 2019-07-27
  • 2 回答
  • 0 关注
  • 267 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信