zoukankan      html  css  js  c++  java
  • js将多维数组转换为一维数组的函数

    RGraph.array_linearize=function ()
    {
            var arr = []; //定义数组变量
       for (var i=0; i<arguments.length; ++i) { //数组的总个数
        if (typeof(arguments[i]) == 'object' && arguments[i]) {//数据类型是'object',并且当前数组不为空
          for (var j=0j<arguments[i].length; ++j{//
            var sub = RGraph.array_linearize(arguments[i][j]);
     
            for (var k=0k<sub.length; ++k{
              arr.push(sub[k]);
            }
          }
        } 
        else 
        {
          arr.push(arguments[i]);
        }
       } 
      return arr;
    }

     此函数的使用说明:

    RGraph.array_linearize(data);

    逐句分析:

       var arr = []; //定义数组变量
       for (var i=0; i<arguments.length; ++i) { //数组的总个数
        if (typeof(arguments[i]) == 'object' && arguments[i]) {//数据类型是'object',并且当前数组不为空,这里我进行调试时,才发现有自己有理解错误的地方
    //大家肯定明白了数组在js中的类型是object类型
    //然而数组的值(一维),在定义成不同的类型,如:int,stirng,那么它就是不同的类型
    //好吧我们可以这样的理解,你定义了一个 int 类型的二维数组,它的值是:[['1','2'],['1','2'],['1','2'],['1','2'],['1','2'],['1','2'],['1','2'],['1','2'],['1','2']]
    //在单元一中的第一个值是1,它的值的类型就是string类型
          for (var j=0j<arguments[i].length; ++j{//
            var sub = RGraph.array_linearize(arguments[i][j]);//第二次拖到外壳
     
            for (var k=0k<sub.length; ++k{
              arr.push(sub[k]);//进行数组的累加
            }
          }
        } 
        else 
        {
          arr.push(arguments[i]);
        }
       } 
      return arr;
  • 相关阅读:
    gflag使用
    INTERVIEW #2
    Decision Tree
    Java FAQ
    K-Nearest Neighbors
    INTERVIEW #1
    C++ FAQ
    INTERVIEW #0
    Selection Sort
    TCP 3-Way Handshake
  • 原文地址:https://www.cnblogs.com/tianzhiyun/p/2839258.html
Copyright © 2011-2022 走看看