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

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

一道javascript算法面試題

一道javascript算法面試題

慕的地6264312 2019-05-23 17:22:59
說是javascrip算面面試題有點片面了,任何語言都可以哈,題面是這樣的:有一個數組,如果有3個值:[3,2,6]。交叉組合后返回:3-2,3-6,2-6,3-2-6有一個數組,如果有4個值:[3,2,6,9]。交叉組合后返回:3-2,3-6,3-9,2-6,2-9,6-9,3-2-6,3-2-9,2-6-9,3-2-6-95個值,6個值以此類推求各大神指教如何實現
查看完整描述

2 回答

?
慕田峪9158850

TA貢獻1794條經驗 獲得超8個贊

vararr=[3,2,6,9]
//以3,2,6,9為例子
functionfun(arr){
//copy
varnewArr=arr.slice(arr)
//結果
varresult=[]
//先獲取3開頭所有,刪除3,獲取2開頭所有,刪除2......
while(newArr.length){
varindex=0
while(index++//復制
vartemp=newArr.slice()
//數組拆分為取固定前綴(3、3-2、3-2-6)與剩余變化值[2,6,9]/[6,9]/[9]
varpreArr=temp.splice(0,index)
//拼接前綴
varpre=preArr.join('-')
temp.forEach(item=>{
//遍歷拼接剩余值
result.push(pre+'-'+item)
})
}
//刪除第一個
newArr.shift()
}
returnresult
}
能實現
                            
查看完整回答
反對 回復 2019-05-23
?
慕萊塢森

TA貢獻1810條經驗 獲得超4個贊

謝邀,供參考
functioncombine(arr,step=1){
constresult=[]
for(leti=0;iconsthead=arr.slice(i,i+step).join('-')+'-'
for(letj=i+step;jresult.push(head+arr[j])
}
}
returnstep}
console.log(combine([3,2,6,9]))
                            
查看完整回答
反對 回復 2019-05-23
  • 2 回答
  • 0 關注
  • 512 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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