最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

全排列組合算法,例如a,b,c,d進(jìn)行全排列組合,則組合結(jié)果為:a,b,ab,c,ac,bc,abc,d,ad,bd,abd,cd,acd,bcd,abcd。實(shí)現(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));

運(yùn)行輸出結(jié)果:

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

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

相關(guān)文章

  • JS實(shí)現(xiàn)九宮格拼圖游戲

    JS實(shí)現(xiàn)九宮格拼圖游戲

    這篇文章主要為大家詳細(xì)介紹了JS實(shí)現(xiàn)九宮格拼圖游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • JavaScript實(shí)現(xiàn)隨機(jī)點(diǎn)名小程序

    JavaScript實(shí)現(xiàn)隨機(jī)點(diǎn)名小程序

    這篇文章主要介紹了JavaScript實(shí)現(xiàn)隨機(jī)點(diǎn)名小程序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-10-10
  • 使用 JavaScript 創(chuàng)建可維護(hù)的幻燈片效果代碼

    使用 JavaScript 創(chuàng)建可維護(hù)的幻燈片效果代碼

    顯然,效果很實(shí)用。對于這個效果,我們并不解釋如何去使用效果庫,而是講解如何創(chuàng)建類似的效果,并保持他的可用性,分離式(unobtrusive),可維護(hù)性(讓未來的維護(hù)者,在不需要修改你的腳本的情況下,修改圖片,外觀或文本標(biāo)簽)。
    2008-06-06
  • JS+HTML5 FileReader對象用法示例

    JS+HTML5 FileReader對象用法示例

    這篇文章主要介紹了JS+HTML5 FileReader對象用法,結(jié)合具體實(shí)例形式分析了FileReader對象的常用方法及簡單使用技巧,需要的朋友可以參考下
    2017-04-04
  • 使用JS和canvas實(shí)現(xiàn)gif動圖的停止和播放代碼

    使用JS和canvas實(shí)現(xiàn)gif動圖的停止和播放代碼

    這篇文章主要介紹了使用JS和canvas實(shí)現(xiàn)gif動圖的停止和播放代碼,非常具有實(shí)用價值,需要的朋友可以參考下
    2017-09-09
  • js+css3實(shí)現(xiàn)簡單時鐘特效

    js+css3實(shí)現(xiàn)簡單時鐘特效

    這篇文章主要為大家詳細(xì)介紹了js+css3實(shí)現(xiàn)簡單時鐘特效,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-09-09
  • webpack自動引入打包資源HtmlWebpackPlugin的實(shí)現(xiàn)

    webpack自動引入打包資源HtmlWebpackPlugin的實(shí)現(xiàn)

    本文主要介紹了webpack自動引入打包資源HtmlWebpackPlugin的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • JSDoc 介紹使用規(guī)范JsDoc的使用介紹

    JSDoc 介紹使用規(guī)范JsDoc的使用介紹

    JsDoc Toolkit 是一個把js描述格式化成文檔的工具。開發(fā)者只需按JsDoc的規(guī)范寫好注釋就可以很方便導(dǎo)出文檔。它是google 推薦的 JsDoc生成工具。
    2011-02-02
  • 純JavaScript創(chuàng)建一個簡單的待辦事項(xiàng)列表

    純JavaScript創(chuàng)建一個簡單的待辦事項(xiàng)列表

    這篇文章主要給大家介紹了關(guān)于純JavaScript創(chuàng)建一個簡單的待辦事項(xiàng)列表的相關(guān)資料,清單通常用于記錄我們在某一天需要完成的所有事項(xiàng),將最關(guān)鍵的任務(wù)放在最上方,將最不重要的事項(xiàng)放在最下方,需要的朋友可以參考下
    2024-01-01
  • js實(shí)時監(jiān)聽文本框狀態(tài)的方法

    js實(shí)時監(jiān)聽文本框狀態(tài)的方法

    js實(shí)時監(jiān)聽文本框狀態(tài)的方法,這里的方法兼容性不是很好,建議參考腳本之家以前的文章。
    2011-04-04

最新評論

伊川县| 黄石市| 永州市| 佛山市| 靖安县| 镇原县| 河北省| 磐安县| 永年县| 海安县| 临西县| 嘉善县| 杭锦后旗| 句容市| 常熟市| 桐城市| 长兴县| 古交市| 平果县| 石阡县| 化州市| 泸州市| 志丹县| 龙里县| 凭祥市| 舞阳县| 合川市| 陇西县| 丹棱县| 沾益县| 宜州市| 兴国县| 宝清县| 阿坝| 茂名市| 班戈县| 铅山县| 章丘市| 鞍山市| 蓝山县| 绥化市|