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=0; j<arguments[i].length; ++j) {//
var sub = RGraph.array_linearize(arguments[i][j]);
for (var k=0; k<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=0; j<arguments[i].length; ++j) {//
var sub = RGraph.array_linearize(arguments[i][j]);//第二次拖到外壳
for (var k=0; k<sub.length; ++k) {
arr.push(sub[k]);//进行数组的累加
}
}
}
else
{
arr.push(arguments[i]);
}
}
return arr;