亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

JS實現(xiàn)的全排列組合算法示例

 更新時間:2017年10月09日 09:32:11   作者:CyborgLin  
這篇文章主要介紹了JS實現(xiàn)的全排列組合算法,簡單描述了全排列組合算法的原理并結(jié)合實例形式給出了全排列組合算法的具體實現(xiàn)技巧,需要的朋友可以參考下

本文實例講述了JS實現(xiàn)的全排列組合算法。分享給大家供大家參考,具體如下:

全排列組合算法,例如a,b,c,d進(jìn)行全排列組合,則組合結(jié)果為:a,b,ab,c,ac,bc,abc,d,ad,bd,abd,cd,acd,bcd,abcd。實現(xiàn)思路:從數(shù)據(jù)源拿出一個元素,依次與已存在的組合數(shù)據(jù)進(jìn)行組合,循環(huán)上面操作直到數(shù)據(jù)源沒有數(shù)據(jù)為止。

例子:

數(shù)據(jù)源a,b,c

1.拿出a,組合數(shù)據(jù)group為空,插入數(shù)據(jù)源a元素到組合數(shù)據(jù)group,此時group=[a]
2.拿出b,組合數(shù)據(jù)group拿出a,a和b組合,得到ab,把數(shù)據(jù)源b元素、ab插入組合數(shù)據(jù)group,此時group=[a,b,ab]
3.拿出c,組合數(shù)據(jù)group拿出a、b、ab,分別與c組合,分別得到ac、bc、abc,把數(shù)據(jù)源c元素、ac、bc、abc插入組合數(shù)據(jù)group,此時group=[a,b,ab,c,ac,bc,abc]

js代碼:

var data = ['a','b','c','d'];
function getGroup(data, index = 0, group = []) {
  var need_apply = new Array();
  need_apply.push(data[index]);
  for(var i = 0; i < group.length; i++) {
    need_apply.push(group[i] + data[index]);
  }
  group.push.apply(group, need_apply);
  if(index + 1 >= data.length) return group;
  else return getGroup(data, index + 1, group);
}
console.log(getGroup(data));

運行輸出結(jié)果:

更多關(guān)于JavaScript相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript數(shù)學(xué)運算用法總結(jié)》、《JavaScript排序算法總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》、《JavaScript查找算法技巧總結(jié)》及《JavaScript錯誤與調(diào)試技巧總結(jié)

希望本文所述對大家JavaScript程序設(shè)計有所幫助。

相關(guān)文章

  • 基于JavaScript創(chuàng)建動態(tài)Dom

    基于JavaScript創(chuàng)建動態(tài)Dom

    這篇文章主要介紹了基于JavaScript創(chuàng)建動態(tài)Dom的相關(guān)資料,需要的朋友可以參考下
    2015-12-12
  • javascript實現(xiàn)最長公共子序列實例代碼

    javascript實現(xiàn)最長公共子序列實例代碼

    最長公共子序列(longest common sequence)和最長公共子串(longest common substring)不是一回事兒,下面這篇文章主要給大家介紹了關(guān)于javascript實現(xiàn)最長公共子序列的相關(guān)資料,需要的朋友可以參考下。
    2018-02-02
  • JS開發(fā)自己的類庫實例分析

    JS開發(fā)自己的類庫實例分析

    這篇文章主要介紹了JS開發(fā)自己的類庫,結(jié)合實例形式分析了javascript開發(fā)類庫的原理、組成及實現(xiàn)方法,需要的朋友可以參考下
    2019-08-08
  • 基于JavaScript實現(xiàn)單例模式

    基于JavaScript實現(xiàn)單例模式

    這篇文章主要介紹了基于JavaScript實現(xiàn)單例模式,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-10-10
  • Js類的靜態(tài)方法與實例方法區(qū)分及jQuery拓展的兩種方法

    Js類的靜態(tài)方法與實例方法區(qū)分及jQuery拓展的兩種方法

    這篇文章主要介紹了Js類的靜態(tài)方法與實例方法區(qū)分及jQuery拓展的兩種方法 的相關(guān)資料,對靜態(tài)方法(Static)和實例方法(非Static)不太理解的朋友可以一起學(xué)習(xí)下
    2016-06-06
  • element ui分頁多選,翻頁記憶的實例

    element ui分頁多選,翻頁記憶的實例

    今天小編就為大家分享一篇element ui分頁多選,翻頁記憶的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-09-09
  • 簡單實現(xiàn)js無縫滾動效果

    簡單實現(xiàn)js無縫滾動效果

    這篇文章主要教大家如何簡單實現(xiàn)js無縫滾動效果,js輪播圖實現(xiàn)方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-02-02
  • 如何判斷元素是否為HTMLElement元素

    如何判斷元素是否為HTMLElement元素

    這篇文章主要介紹了如何判斷元素是否為HTMLElement元素。需要的朋友可以過來參考下,希望對大家有所幫助
    2013-12-12
  • JavaScript Base64 作為文件上傳的實例代碼解析

    JavaScript Base64 作為文件上傳的實例代碼解析

    這篇文章主要介紹了JavaScript Base64 作為文件上傳的實例代碼解析,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2017-02-02
  • 微信小程序中使用 async/await的方法實例分析

    微信小程序中使用 async/await的方法實例分析

    這篇文章主要介紹了微信小程序中使用 async/await的方法,結(jié)合實例形式分析了微信小程序中async/await的功能、使用方法及操作注意事項,需要的朋友可以參考下
    2020-05-05

最新評論