zoukankan      html  css  js  c++  java
  • 排列数组的方法

    //数组的组合
    Array.prototype.combinate = function(iItems, aIn) {
    if (!aIn) {
    var aIn = new Array();
    this.combinate.aResult = new Array();
    }
    for (var i = 0; i < this.length; i++) {
    var a = aIn.concat(this[i]);
    var aRest = this.concat(); // Concat with nothing to create copy
    aRest.splice(0, i + 1);
    if (iItems && iItems - 1 <= aRest.length) {
    aRest.combinate(iItems - 1, a);
    if (iItems == 1) this.combinate.aResult.push(a);
    }
    }
    return this.combinate.aResult;
    }
    var arr = [1,2,3,4];
    var newarr = arr.combinate(2);
    console.log(JSON.stringify(newarr));//[[1,2],[1,3],[1,4],[2,3],[2,4],[3,4]]

     //多数组之间的排列组合方法

    var comarray = function(arr) {
    var  sarr  =   [
    []
    ];
    for  (var  i  =  0;  i  <  arr.length;  i++)  {    
    var  tarr  =   [];    
    for  (var  j  =  0;  j  <  sarr.length;  j++)        
    for  (var  k  =  0;  k  <  arr[i].length;  k++)  {           
    tarr.push(sarr[j].concat(arr[i][k]));
    }
    sarr  =  tarr;
    }
    return sarr;
    }

    var newarr = comarray([["1","2"],["a","b"]]);//[["1","a"],[]"1","b"],["2","a"],["2","b"]]

  • 相关阅读:
    module.export和export
    netty学习
    I/O知识
    cxf+spring+数字签名开发webservice(二)
    cxf+spring+数字签名开发webservice(一)
    js作用域
    js继承
    js模块和级联
    python全栈_011_Python3基本数据类型--字典
    python全栈_010_Python3基本数据类型--元组
  • 原文地址:https://www.cnblogs.com/zerohu/p/5949628.html
Copyright © 2011-2022 走看看