亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

有大佬遇到過這個問題嗎:js遍歷多個數組,實現元素交叉萬分感謝

有大佬遇到過這個問題嗎:js遍歷多個數組,實現元素交叉萬分感謝

守候你守候我 2019-08-11 14:20:51
有多個數組(個數不一定!!很重要),例如: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貢獻1821條經驗 獲得超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-08-11
?
互換的青春

TA貢獻1797條經驗 獲得超6個贊

結果示例里的第四行應該是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-08-11
  • 2 回答
  • 0 關注
  • 304 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號