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"]]

  • 相关阅读:
    第二月 day 2,内置函数
    第二月 day3 闭包,递归
    day4 装饰器
    第二月 day1生成器
    第一个月 总结
    day 16 迭代器
    day 15 编码
    Docker常用命令
    DRF源码刨析
    django中使用qiniu作为第三方存储
  • 原文地址:https://www.cnblogs.com/zerohu/p/5949628.html
Copyright © 2011-2022 走看看