• js实现N个元素的排列组合及存在相同元素的处理方法


    js实现N个元素的排列组合及存在相同元素的处理方法

    不能有相同的元素,相同号码替换成对应字母处理

    方法一:

    var zhixuan = new Array();
    //不能有相同的元素,相同号码替换成对应字母处理
    function arrange(arr,s){
        for(var i=0,length=arr.length; i<length; i++) {
            if(s.length == length - 1) {
                if(s.indexOf(arr[i]) < 0) {
                    zhixuan.push(s + arr[i]);
                }
                continue;
            }
            if(s.indexOf(arr[i]) < 0) {
                arrange(arr,s+arr[i]);
            }
        }
    }

    方法二:

    //var arr1 = [1,2,3,3,4]; 不能有相同的,相同号码替换成对应字母处理
    function permute(temArr,testArr){
       var permuteArr=[];
       var arr = testArr;
       function innerPermute(temArr){
             for(var i=0,len=arr.length; i<len; i++) {
                 if(temArr.length == len - 1) {
                     if(temArr.indexOf(arr[i]) < 0) {
                         permuteArr.push(temArr.concat(arr[i]));
                     }
                     continue;
                 }
                 if(temArr.indexOf(arr[i]) < 0) {
                     innerPermute(temArr.concat(arr[i]));
                 }
            }
        }
        innerPermute(temArr);
        return permuteArr;     
    }

    相同号码替换对应字母处理方法:

    String.prototype.myReplace=function(f,e){
        var reg=new RegExp(f,"g"); 
        return this.replace(reg,e);
    }
    
    var nlist = ["0","1","2","3","4","5","6","7","8","9"];
    var clist = ["a","b","c","d","e","f","g","h","i","j"];
    
    function replaceCode(number){
        for(var i=0; i<10; i++){
            if(nlist[i] == number){
                return clist[i];
            }
        }
    }

    使用方法示例:

    var arr = [1,2,3,3,4];
    //替换相同的数字为对应字母 arr[
    3] = replaceCode(arr[3]);
    //调用方法一 arrange(arr,
    ''); //使用方法一的全局变量 var outstr = zhixuan.join(",");
    //替换对应的字符串为数字
    for(var i=0; i<10; i++){ outstr = outstr.myReplace(clist[i], nlist[i]); }
    //输出内容 $(
    "#showdiv").html(outstr);
    大自然,飘然的风,QQ群: python技术交流群:453879716,人工智能深度学习群:251088643
    golang技术交流群:316397059,vuejs技术交流群:458915921 渗透技术:534096581,囤币一族:621258209,有兴趣的可以加入
    微信公众号:大自然预测(ssqyuce)原双色球预测, 心禅道(xinchandao)
  • 相关阅读:
    Java方法
    Java流程控制
    Java基础
    常用Dos命令
    MarkDown语法
    怎样获取最新版的javascript文件,解决被浏览器缓存的问题
    笔记:javascript操作iframe内的DOM元素,及调用iframe内的方法
    .net程序部署(mono方式)
    面向对象的一点简易理解
    [李说新语]系列(1)西汉勇士贯高到底该不该死
  • 原文地址:https://www.cnblogs.com/zdz8207/p/14428205.html
Copyright © 2020-2023  润新知