本文摘自PHP中文网,作者藏色散人,侵删。
今天给大家介绍怎么通过一个JavaScript函数来生成字符串的所有排列组合,那么所谓排列组合就是组合学中最基本的概念了。首先来给大家简单介绍排列组合:
1、排列就是指从给定个数的元素中取出指定个数的元素进行排序。
2、组合则是指从给定个数的元素中仅仅取出指定个数的元素,不考虑排序。
而排列组合的中心问题就是研究指定要求的排列和组合可能出现的情况总数。
想必大家对排列组合都有所了解了。
下面我们就通过javascript代码来实现计算字符串的所有排列组合情况。
完整代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | <!DOCTYPE html>
<html lang= "en" >
<head>
<meta charset= "UTF-8" >
<title>Title</title>
</head>
<body>
<script>
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进行排列组合,查看生成结果如下:
阅读剩余部分
相关阅读 >>
17个你不知道的实用javascript技巧!
java和javascript啥关系
es6删除数组元素或者对象元素的方法介绍(代码)
javascript和java之间有什么区别
settimeout和setinterval之间有什么区别?
vue.js的select下拉框怎样绑定事件和取值
javascript如何检查一个对象是否为空(代码示例)
javascript有什么优点
浏览器缓存策略的详细介绍(图文)
jquery javascript ajax区别是什么
更多相关阅读请进入《javascript》频道 >>
人民邮电出版社
本书对 Vue.js 3 技术细节的分析非常可靠,对于需要深入理解 Vue.js 3 的用户会有很大的帮助。——尤雨溪,Vue.js作者
转载请注明出处:木庄网络博客 » 通过JavaScript函数生成字符串的所有排列组合