今天要跟大家介紹怎麼透過一個JavaScript函數來產生字串的所有排列組合,那麼所謂排列組合就是組合學中最基本的概念了。
首先來給大家簡單介紹排列組合:
1、排列就是指從給定個數的元素中取出指定個數的元素進行排序。
2、組合則是指從給定個數的元素中僅取出指定個數的元素,不考慮排序。
而排列組合的中心問題就是研究指定要求的排列和組合可能出現的情況總數。
想必大家對排列組合都有所了解了。
下面我們就透過javascript程式碼來實現計算字串的所有排列組合情況。
完整程式碼如下:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <script> //编写一个JavaScript函数来生成字符串的所有组合 function substrings(str1) { var array1 = []; for (var x = 0, y=1; x < str1.length; x++,y++) { array1[x]=str1.substring(x, y); } var combi = []; var temp= ""; var slent = Math.pow(2, array1.length); for (var i = 0; i < slent ; i++) { temp= ""; for (var j=0;j<array1.length;j++) { if ((i & Math.pow(2,j))){ temp += array1[j]; } } if (temp !== "") { combi.push(temp); } } console.log(combi.join("\n")); } substrings("dog"); </script> </body> </html>
這裡我們對一個範例字串dog進行排列組合,查看生成結果如下:
在上述程式碼中,我們用了幾個關鍵的方法,如下:
1、pow()
方法:用於計算x的y次冪,語法是「Math.pow(x,y)
」。
2、push()
方法:可在陣列的末端新增一個或多個元素,並傳回新的長度,語法是「array.push(item1, item2 , ..., itemX)
」。
3、join()
方法:用來把陣列中的所有元素放入一個字串,元素是透過指定的分隔符號來分隔的,語法是「 arrayObject.join(separator)
」。
最後推薦本平台經典的課程《JavaScript極速入門_玉女心經系列》,公益免費的~歡迎大家學習~
以上是透過JavaScript函數產生字串的所有排列組合的詳細內容。更多資訊請關注PHP中文網其他相關文章!