通过JavaScript函数生成字符串的所有排列组合


本文摘自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>

    //编写一个JavaScript函数来生成字符串的所有组合

 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》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...