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

 更新时间:2017年10月09日 09:32:11   作者:CyborgLin  
这篇文章主要介绍了JS实现的全排列组合算法,简单描述了全排列组合算法的原理并结合实例形式给出了全排列组合算法的具体实现技巧,需要的朋友可以参考下

本文实例讲述了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));

运行输出结果:

更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript数据结构与算法技巧总结》、《JavaScript数学运算用法总结》、《JavaScript排序算法总结》、《JavaScript遍历算法与技巧总结》、《JavaScript查找算法技巧总结》及《JavaScript错误与调试技巧总结

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

相关文章

  • JS实现九宫格拼图游戏

    JS实现九宫格拼图游戏

    这篇文章主要为大家详细介绍了JS实现九宫格拼图游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-06-06
  • JavaScript实现随机点名小程序

    JavaScript实现随机点名小程序

    这篇文章主要介绍了JavaScript实现随机点名小程序,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-10-10
  • 使用 JavaScript 创建可维护的幻灯片效果代码

    使用 JavaScript 创建可维护的幻灯片效果代码

    显然,效果很实用。对于这个效果,我们并不解释如何去使用效果库,而是讲解如何创建类似的效果,并保持他的可用性,分离式(unobtrusive),可维护性(让未来的维护者,在不需要修改你的脚本的情况下,修改图片,外观或文本标签)。
    2008-06-06
  • JS+HTML5 FileReader对象用法示例

    JS+HTML5 FileReader对象用法示例

    这篇文章主要介绍了JS+HTML5 FileReader对象用法,结合具体实例形式分析了FileReader对象的常用方法及简单使用技巧,需要的朋友可以参考下
    2017-04-04
  • 使用JS和canvas实现gif动图的停止和播放代码

    使用JS和canvas实现gif动图的停止和播放代码

    这篇文章主要介绍了使用JS和canvas实现gif动图的停止和播放代码,非常具有实用价值,需要的朋友可以参考下
    2017-09-09
  • js+css3实现简单时钟特效

    js+css3实现简单时钟特效

    这篇文章主要为大家详细介绍了js+css3实现简单时钟特效,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-09-09
  • webpack自动引入打包资源HtmlWebpackPlugin的实现

    webpack自动引入打包资源HtmlWebpackPlugin的实现

    本文主要介绍了webpack自动引入打包资源HtmlWebpackPlugin的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • JSDoc 介绍使用规范JsDoc的使用介绍

    JSDoc 介绍使用规范JsDoc的使用介绍

    JsDoc Toolkit 是一个把js描述格式化成文档的工具。开发者只需按JsDoc的规范写好注释就可以很方便导出文档。它是google 推荐的 JsDoc生成工具。
    2011-02-02
  • 纯JavaScript创建一个简单的待办事项列表

    纯JavaScript创建一个简单的待办事项列表

    这篇文章主要给大家介绍了关于纯JavaScript创建一个简单的待办事项列表的相关资料,清单通常用于记录我们在某一天需要完成的所有事项,将最关键的任务放在最上方,将最不重要的事项放在最下方,需要的朋友可以参考下
    2024-01-01
  • js实时监听文本框状态的方法

    js实时监听文本框状态的方法

    js实时监听文本框状态的方法,这里的方法兼容性不是很好,建议参考脚本之家以前的文章。
    2011-04-04

最新评论