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

  • 相关阅读:
    WebCollector2.7爬虫框架——在Eclipse项目中配置
    JavaScript 输出
    CSS3 页面中展示邮箱列表点击弹出发送邮件界面
    CSS3 Flex Box(弹性盒子)
    CSS 分页实例
    CSS 图片
    CSS3 用户界面
    CSS3 动画
    CSS3 过渡
    CSS3 3D转换
  • 原文地址:https://www.cnblogs.com/zerohu/p/5949628.html
Copyright © 2011-2022 走看看