JS实现的全排列组合算法示例


Posted in Javascript onOctober 09, 2017

本文实例讲述了JS实现的全排列组合算法。分享给大家供大家参考,具体如下:

全排列组合算法,例如a,b,c,d进行全排列组合,则组合结果为:a,b,ab,c,ac,bc,abc,d,ad,bd,abd,cd,acd,bcd,abcd。实现思路:从数据源拿出一个元素,依次与已存在的组合数据进行组合,循环上面操作直到数据源没有数据为止。

例子:

数据源a,b,c

1.拿出a,组合数据group为空,插入数据源a元素到组合数据group,此时group=[a]
2.拿出b,组合数据group拿出a,a和b组合,得到ab,把数据源b元素、ab插入组合数据group,此时group=[a,b,ab]
3.拿出c,组合数据group拿出a、b、ab,分别与c组合,分别得到ac、bc、abc,把数据源c元素、ac、bc、abc插入组合数据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));

运行输出结果:

JS实现的全排列组合算法示例

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
用javascript实现计算两个日期的间隔天数
Aug 14 Javascript
javascript游戏开发之《三国志曹操传》零部件开发(一)让静态人物动起来
Jan 23 Javascript
深入学习jQuery中的data()
Dec 22 Javascript
JS实现的RC4加密算法示例
Aug 16 Javascript
微信小程序下拉框功能的实例代码
Nov 06 Javascript
微信小程序实现的五星评价功能示例
Apr 25 Javascript
Layui数据表格跳转到指定页的实现方法
Sep 05 Javascript
JS apply用法总结和使用场景实例分析
Mar 14 Javascript
解决elementUI 切换tab后 el_table 固定列下方多了一条线问题
Jul 19 Javascript
jQuery带控制按钮轮播图插件
Jul 31 jQuery
vue修改Element的el-table样式的4种方法
Sep 17 Javascript
JavaScript实现瀑布流布局的3种方式
Dec 27 Javascript
js + css实现标签内容切换功能(实例讲解)
Oct 09 #Javascript
jQuery ajax调用webservice注意事项
Oct 08 #jQuery
js用类封装pop弹窗组件
Oct 08 #Javascript
利用js编写网页进度条效果
Oct 08 #Javascript
MUI顶部选项卡的用法(tab-top-webview-main)详解
Oct 08 #Javascript
JS动态修改网页body的背景色实例代码
Oct 07 #Javascript
JS实现简单表格排序操作示例
Oct 07 #Javascript
You might like
PHP6 先修班 JSON实例代码
2008/08/23 PHP
php上传文件中文文件名乱码的解决方法
2013/11/01 PHP
php实现最简单的MVC框架实例教程
2014/09/08 PHP
WordPress中用于创建以及获取侧边栏的PHP函数讲解
2015/12/29 PHP
使用JQuery进行跨域请求
2010/01/25 Javascript
jquery 打开窗口返回值实现代码
2010/03/04 Javascript
Microsoft Ajax Minifier 压缩javascript的方法
2010/03/05 Javascript
jquery的ajax异步请求接收返回json数据实例
2014/06/16 Javascript
JavaScript生成SQL查询表单的方法
2015/08/13 Javascript
js读取并解析JSON类型数据的方法
2015/11/14 Javascript
原生javascript实现addClass,removeClass,hasClass函数
2016/02/25 Javascript
使用JQuery实现智能表单验证功能
2016/03/08 Javascript
AngularJS ng-blur 指令详解及简单实例
2016/07/30 Javascript
jQuery遍历节点树方法分析
2016/09/08 Javascript
react+ant design实现Table的增、删、改的示例代码
2018/12/27 Javascript
微信小程序使用npm包的方法步骤
2019/08/13 Javascript
vue项目中播放rtmp视频文件流的方法
2020/09/17 Javascript
在antd Table中插入可编辑的单元格实例
2020/10/28 Javascript
分析Python中设计模式之Decorator装饰器模式的要点
2016/03/02 Python
解决已经安装requests,却依然提示No module named requests问题
2018/05/18 Python
Python决策树之基于信息增益的特征选择示例
2018/06/25 Python
flask框架中勾子函数的使用详解
2018/08/01 Python
pymongo中group by的操作方法教程
2019/03/22 Python
python对文件目录的操作方法实例总结
2019/06/24 Python
基于Django统计博客文章阅读量
2019/10/29 Python
pandas的相关系数与协方差实例
2019/12/27 Python
如何在sublime编辑器中安装python
2020/05/20 Python
sqlalchemy实现时间列自动更新教程
2020/09/02 Python
免税水晶:Duty Free Crystal
2019/05/13 全球购物
焊接专业毕业生求职信
2013/10/01 职场文书
演讲稿开场白台词
2014/08/25 职场文书
镇人大副主席民主生活会对照检查材料思想汇报
2014/10/01 职场文书
四风问题个人剖析材料
2014/10/07 职场文书
尊师重教主题班会
2015/08/14 职场文书
使用golang编写一个并发工作队列
2021/05/08 Golang
Nginx location 和 proxy_pass路径配置问题小结
2021/09/04 Servers