前言
最近在工作碰到一個(gè)問題,就是用javascript求數(shù)組中所有數(shù)字能拼接出的最大整數(shù),數(shù)組的每一項(xiàng)為單獨(dú)的拼接項(xiàng),不能再拆開,例如[2,34]中2和34分別為要被拼接的數(shù)字,而不是說34還能繼續(xù)拆分為3和4。
具體需求為,將[7,321,35,4]拼接為7435321。下面話不多說了,來一起看看詳細(xì)的實(shí)現(xiàn)方法吧。
我設(shè)計(jì)的算法如下:
function insertSort(arr) { let res = [arr[0]]; for (let i = 1, len = arr.length; i < len; i++) { let temp = arr[i]; for (let j = i - 1; j >= 0; j--) { if (!compareNum(res[j],temp)) { res[j + 1] = res[j]; res[j] = temp; } else { res[j + 1] = temp; break; } } } return res;}function compareNum(a,b) { a =""+a; b = ""+b; let aLen=a.length; let bLen=b.length; let aIndex=0; let bIndex=0; while (aIndex<aLen && bIndex<bLen){ let flag=false; if (a[aIndex]==b[bIndex]){ aIndex+1<aLen && (aIndex++,flag=true); bIndex+1<bLen && (bIndex++,flag=true); }else{ break; } if (!flag){ break; } } if (a[aIndex]>b[bIndex]){ return true; }else{ return false; }}let arr=[5,2,1,38];// let arr=[5,2,1,38,52,4,5,593,8,55,555,492,493,7,9,61,66,6];// let arr=[5,2,1,38,52,4,5,593,61,6];function toInt(arr) { let newArr=insertSort(arr); document.write(newArr); return newArr.join("");}let intNum=toInt(arr);console.log(intNum);總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對(duì)武林網(wǎng)的支持。
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注