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;
原文地址:https://www.cnblogs.com/tianzhiyun/p/2839258.html