• 数组运算


    (2017-03-12 银河统计)

    数组是相同数据类型的元素按一定顺序排列的集合。若将有限个类型相同的变量的集合命名,那么这个名称为数组名。组成数组的各个变量称为数组元素,有时也称为下标变量。用于区分数组的各个元素的数字编号称为下标。数组是在程序设计中,为了处理方便, 把具有相同类型的若干变量按有序的形式组织起来的一种形式。这些按序排列的同类数据元素的集合称为数组。通常各种计算机编程语言都具备一定的数值运算能力,网页脚本Javascript语言具有强大和灵活多样的数组处理功能,充分利用JS数组编程知识可以解决几乎所有网络统计学方法。

    在银河统计网和博客中,数组类函数(webTJ.Array)是网络统计类(webTJ)下的一个重要子类,主要用于数据处理和统计计算。在多少情况下,首先将数据导入数组变量(参见银河统计博文:数据输入、转换、展示和存储 - 网络统计类函数(1)),然后运用数组类函数(webTJ.Array)进行各类统计分析和运算。

    线性代数中的矩阵是二维数组的特例。在银河网络统计学函数库中,webTJ.Array和webTJ.Matrix两个子类的函数经常相互调用。webTJ.Matrix子类侧重于建立模型,webTJ.Array子类侧重于数据处理。

    为方便运行本文中样例代码,可打开网络统计学代码调试窗口,复制、粘贴代码到数据处理代码窗口中运行即可。

    数组函数(子类名称:webTJ.Array)一览表

    序号函数名称参数1参数2参数3功能备注
    1getArrfromArrs(arrs)二维数组**二维数组转换为一维数组*
    2getArrsfromArr(arr,col)一维数组二维数组列数*一维数组转换为二维数组*
    3getNArrSort(arr,k)一维数组排序类型*一维数量型数组排序0升序、1降序、2乱序
    4getSArrSort(arr,k)一维数组排序类型*一维字符型数组排序同上
    5getNArrsSort(arrs,k,c)二维数组排序类型二维数量型数组排序同上
    6getSArrsSort(arrs,k,c)二维数组排序类型二维字符型数组排序同上
    7getQuantify(arrs)二维数组**数组量化*
    8getArrStr(arrs)二维数组**获取数组格式字符串*
    9getUniform(size,a,b,deci)样本量下限上限生成均匀分布数组deci:保留小数
    10getNormal(size,mesn,sd,deci)样本量均值标准差生成正态分布数组同上
    11getRDrr(arrs,size)指标频数矩阵样本量*按给定指标频数生成模拟样本数组*
    12getUnique(arr)一维数组**提取数组中不重复元素及频数和频率*
    13getCountif(arr,mstr)一维数组计数条件表达式*一维数组条件计数*
    14getScreen(arr,mstr)一维数组筛选条件表达式*一维数组元素筛选*
    15getSumif(arr,mstr)一维数组条件表达式*一维数组条件求和*
    16getSelect(arrs,mstr)二维数组筛选条件表达式*二维数组元素筛选*
    17getCTransform(arrs,mstr)二维数组变换条件表达式*二维数组列变换*
    18getRTransform(arrs,mstr)二维数组变换条件表达式*二维数组行变换*
    19getCSum(arrs,col)二维数组求和列*二维数组按列求和*
    20getArrTransform(arr,mstr)一维数组转换表达式*一维数组变换*
    21getGroup(arr,garr)待分组一维数组分组组限数组*一维数组分组及频数、频率统计*
    22getLarge(arr,k)一维数组第k最大*获得数组第k最大值*
    23getSmall(arr,k)一维数组第k最小*获得数组第k最小值*
    24getColData(arrs,col)二维数组列数*获得二维数组指定列*
    25getUniquity(arr)一维数组**提取一维数组不重复元素*
    26getURate(arr,urr)一维样本数组不重复元素数组*统计一维数组(单项式)不重复元素频数和频率*
    27getItemPos(arr,str)一维样本数组匹配元素*一维数组中匹配元素位置*
    28getMonomial(arrs)二维样本数组**单项式分组样本转换为单项式样本*

    注:本网页中所有数据管理类函数和代码样例都可以复制、粘贴到网页尾部“代码窗口”运行通过

    一、数组运算函数和代码样例###

    1、二维数组转换为一维数组  [返回]

    ## 函数
        webTJ.Array.getArrfromArrs(arrs);
    ##参数
        【arrs】
        【二维数组】
    

    代码样例

    webTJ.clear();
    var oArrs=[[1,20],[1,2],[3,4],[5,6]];
    var oArr=webTJ.Array.getArrfromArrs(oArrs);    //将二维数组转换为一维数组并赋值给变量oArr
    webTJ.display(oArr,0);
    webTJ.display(oArr[6],0);
    

    2、一维数组转换为二维数组  [返回]

    ## 函数
        webTJ.Array.getArrsfromArr(arr,col);
    ##参数
        【arr,col】
        【一维数组,二维数组列数】
    

    代码样例

    webTJ.clear();
    var oArr1=[1,2,3,8,9,4,5,6];
    var oArrs1=webTJ.Array.getArrsfromArr(oArr1,3);    //将一维数组转换为二维数组(3列)
    webTJ.display(oArrs1,1);                           //以矩阵方式显示数组变量oArrs1
    var oArrs2=webTJ.Array.getArrsfromArr(oArr1,2);    //将一维数组转换为二维数组(2列)
    webTJ.display(oArrs2,1); 
    

    3、一维数量型数组排序  [返回]

    ## 函数
        webTJ.Array.getNArrSort(arr,k);
    ##参数
        【arr,k】
        【一维数组,排序类型】
    

    注:(k=0)升序、(k=1)降序、(k=2)乱序

    代码样例

    webTJ.clear();
    var oArr=[3,2,5,1,2,5,4,3,3,1,2,4,2,1,1,5,4,1,3,1];
    webTJ.display(oArr,0);
    var oSrr=webTJ.Array.getNArrSort(oArr,0); //将一维数量型数组按升序排序
    webTJ.display(oSrr,0); 
    oSrr=webTJ.Array.getNArrSort(oArr,1);     //将一维数量型数组按降序排序
    webTJ.display(oSrr,0); 
    oSrr=webTJ.Array.getNArrSort(oArr,2);     //将一维数量型数组按乱序排序
    webTJ.display(oSrr,0); 
    

    4、一维字符型数组排序  [返回]

    ## 函数
        webTJ.Array.getSArrSort(arr,k);
    ##参数
        【arr,k】
        【一维数组,排序类型】
    

    注:(k=0)升序、(k=1)降序、(k=2)乱序

    代码样例

    webTJ.clear();
    var oTxt="d,v,j,r,h,n,m,s,v,l,q,f,x,g,p,c,t,i,u,o,k,w,e,b,z,a";
    var oArr=webTJ.getArr(oTxt,",");          //将字符串oTxt转换为数组oArr
    webTJ.display(oArr,0);
    var oSrr=webTJ.Array.getSArrSort(oArr,0); //将一维字符型数组按升序排序
    webTJ.display(oSrr,0); 
    oSrr=webTJ.Array.getSArrSort(oArr,1);     //将一维字符型数组按降序排序
    webTJ.display(oSrr,0); 
    oSrr=webTJ.Array.getSArrSort(oArr,2);     //将一维字符型数组按乱序排序
    webTJ.display(oSrr,0); 
    

    5、二维数量型数组排序  [返回]

    ## 函数
        webTJ.Array.getNArrsSort(arrs,k,c);
    ##参数
        【arrs,k,c】
        【二维数组,排序类型,列】
    

    注:(k=0)升序、(k=1)降序、(k=2)乱序

    代码样例

    webTJ.clear();
    var oArrs=[[3,2,5,1],[2,5,4,3],[3,1,2,4],[2,1,1,5],[4,1,3,1]];
    webTJ.display(oArrs,1);
    var oSrrs=webTJ.Array.getNArrsSort(oArrs,0,2); //数组按升序对第3列进行排序
    webTJ.display(oSrrs,1); 
    

    6、二维字符型数组排序  [返回]

    ## 函数
        webTJ.Array.getSArrsSort(arrs,k,c);
    ##参数
        【arrs,k,c】
        【二维数组,排序类型,列】
    

    注:(k=0)升序、(k=1)降序、(k=2)乱序

    代码样例

    webTJ.clear();
    var oTxt="e:2:g:r:p,t:b:3:c:o,j:a:1:a:k,l:m:d:4:h";
    var oArrs=webTJ.getArrs(oTxt,",",":");
    webTJ.display(oArrs,1);
    var oSrrs=webTJ.Array.getSArrsSort(oArrs,0,1);    //数组第2列按降序排序
    webTJ.display(oSrrs,1);
    

    7、数组量化  [返回]

    ## 函数
        webTJ.Array.getQuantify(arrs);
    ##参数
        【arrs】
        【二维数组】
    

    注:有时数组元素为数字字符(数字加引号,如"23"),可以用该函数加以量化后进行运算

    代码样例

    webTJ.clear();
    var oArrs=[
        ["3","2","3","1"],
        [2,"5",4,3],[3,1,2,4],
        [2,1,1,5],[4,1,3,1]];
    var oArrs1=webTJ.Array.getQuantify(oArrs);
    webTJ.display(oArrs1,1);
    

    8、获取数组格式字符串  [返回]

    ## 函数
        webTJ.Array.getArrStr(arrs);
    ##参数
        【arrs】
        【二维数组】
    

    注:当将数据导入数组后,可以该函数导出数组格式字符串

    代码样例

    webTJ.clear();
    var oArrs=[["3","2","3","1"],
        [2,"t","w",3],[3,1,2,4],
        [2,1,1,5],[4,1,3,1]];
    var oStr=webTJ.Array.getArrStr(oArrs);
    webTJ.display(oStr,0);
    

    9、生成均匀分布数组  [返回]

    ## 函数
        webTJ.Array.getUniform(size,a,b,deci);
    ##参数
        【size,a,b,deci】
        【样本量,下限,上限,保留小数】
    

    代码样例

    webTJ.clear();
    var oArr=webTJ.Array.getUniform(50,30,100,2);
    webTJ.display(oArr,0);
    

    10、生成正态分布数组  [返回]

    ## 函数
        webTJ.Array.getNormal(size,mesn,sd,deci);
    ##参数
        【size,mesn,sd,deci】
        【样本量,均值,标准差,保留小数】
    

    代码样例

    webTJ.clear();
    var oArr=webTJ.Array.getNormal(50,100,10,4);
    webTJ.display(oArr,0);
    

    11、按给定指标频数生成模拟样本数组  [返回]

    ## 函数
        webTJ.Array.getRDrr(arrs,size);
    ##参数
        【arrs,size】
        【指标频数矩阵,样本量】
    

    注:按指标频数生成模拟样本在管理系统模拟中被广泛运用。该函数为复合函数,返回模拟样本和频数两个数组

    代码样例

    webTJ.clear();
    var oPrrs=[["A",12],["B",23],["C",15],["D",34],["E",54],["F",67],["G",88],["H",65],["I",32],["J",14]];
    var oArrs=webTJ.Array.getRDrr(oPrrs,100);    //生成模拟样本数组
    webTJ.display(oArrs[0],0);                   //显示模拟样本数组
    webTJ.display(oArrs[1],1);                   //显示频数数组
    

    12、提取数组中不重复元素及频数和频率  [返回]

    ## 函数
        webTJ.Array.getUnique(arr);
    ##参数
        【arr】
        【一维数组】
    

    注:返回数组列分别为指标项、频数、累计数、频率、分布概率

    代码样例

    webTJ.clear();
    var oSrr=webTJ.Array.getUniform(100,30,100,0);  //生成100个30-100的均匀分布随机数
    webTJ.display(oSrr,0);
    var oArrs=webTJ.Array.getUnique(oSrr);          //提取数组唯一项及频数和频率
    webTJ.show(oArrs,2);                             //表格显示数组                
    

    13、一维数组条件计数  [返回]

    ## 函数
        webTJ.Array.getCountif(arr,mstr);
    ##参数
        【arr,mstr】
        【一维数组,计数条件表达式】
    

    注:Item[i]为一维数组元素通用项表达式。筛选条件表达式参见银河统计博文JavaScript脚本语言基础(一)之JavaScript运算符和操作符

    代码样例

    webTJ.clear();
    var oArr=[3,2,5,1,2,5,4,3,3,1,2,4,2,1,1,5,4,1,3,1];
    webTJ.display(oArr,0);
    var oStr="Item[i]>3";                             //设置计数条件表达式
    var oBrr=webTJ.Array.getCountif(oArr,oStr);       //按条件统计元素数量
    webTJ.display(oBrr,0);
    

    14、一维数组元素筛选  [返回]

    ## 函数
        webTJ.Array.getScreen(arr,mstr);
    ##参数
        【arr,mstr】
        【一维数组,筛选条件表达式】
    

    代码样例

    webTJ.clear();
    var oSrr=webTJ.Array.getUniform(100,30,100,0);  
    webTJ.display(oSrr,0);
    var oTxt="Item[i]>=50 && Item[i]<60";         //设置筛选条件为[50,60)
    var oArr=webTJ.Array.getScreen(oSrr,oTxt);    //按条件筛选数组元素
    webTJ.display(oArr,0);
    

    15、一维数组条件求和  [返回]

    ## 函数
        webTJ.Array.getSumif(arr,mstr);
    ##参数
        【arr,mstr,type】
        【一维数组,条件表达式】
    

    代码样例

    webTJ.clear();
    var oSrr=webTJ.Array.getUniform(100,30,100,0);  
    webTJ.display(oSrr,0);
    var oTxt="Item[i]>=50 && Item[i]<60";         //设置筛选条件为[50,60)
    var oArr=webTJ.Array.getSumif(oSrr,oTxt);     //按条件合计数组元素
    webTJ.display(oArr,0);
    

    16、二维数组元素筛选  [返回]

    ## 函数
        webTJ.Array.getSelect(arrs,mstr);
    ##参数
        【arrs,mstr】
        【二维数组,筛选条件表达式】
    

    注:Items[i][j]为二维数组元素通用项表达式

    代码样例

    webTJ.clear();
    var oArrs=[[3,2,5,1],[2,5,4,3],[3,1,2,4],[2,1,1,5],[4,1,3,1]];  
    webTJ.display(oArrs,1);
    var oStr="Items[i][0]>=3 && Items[i][2]<4";    //设置筛选条件为第1列每行大于等于3,第3列每行小于4
    var oBrrs=webTJ.Array.getSelect(oArrs,oStr); //按条件筛选数组元素
    webTJ.display(oBrrs,1);
    

    17、二维数组列变换  [返回]

    ## 函数
        webTJ.Array.getCTransform(arrs,mstr);
    ##参数
        【arrs,mstr】
        【二维数组,变换条件表达式】
    

    代码样例

    webTJ.clear();
    var oArrs=[[3,2,5,1],[2,5,4,3],[3,1,2,4],[2,1,1,5],[4,1,3,1]];  
    webTJ.display(oArrs,1);
    var oTs=webTJ.Matrix.getInsertCol(oArrs,4);          //给数组oArrs添加一列(这里引用矩阵类函数)
    webTJ.display(oTs,1);
    var oStr="Items[i][4]=Items[i][0]*Items[i][2]";         //设置筛选条件为第1列每行大于等于3,第3列每行小于4
    var oBrrs=webTJ.Array.getCTransform(oTs,oStr);     //按条件筛选数组元素
    webTJ.display(oBrrs,1);
    

    18、二维数组行变换  [返回]

    ## 函数
        webTJ.Array.getRTransform(arrs,mstr);
    ##参数
        【arrs,mstr】
        【二维数组,变换条件表达式】
    

    代码样例

    webTJ.clear();
    var oArrs=[[3,2,5,1],[2,5,4,3],[3,1,2,4],[2,1,1,5],[4,1,3,1]];
    webTJ.display(oArrs,1);
    var oTs=webTJ.Matrix.getInsertRow(oArrs,5);          //给数组oArrs添加一行(这里引用矩阵类函数)
    webTJ.display(oTs,1);  
    var oStr="Items[5][j]=Items[1][j]+Items[2][j]";      //设置筛选条件为第5行等于第2、3行相加
    var oBrrs=webTJ.Array.getRTransform(oTs,oStr);       //按条件筛选数组元素
    webTJ.display(oBrrs,1);
    

    19、二维数组按列求和  [返回]

    ## 函数
        webTJ.Array.getCSum(arrs,col);
    ##参数
        【arrs,col】
        【二维数组,求和列】
    

    代码样例

    webTJ.clear();
    var oArrs=[[3,2,5,1],[2,5,4,3],[3,1,2,4],[2,1,1,5],[4,1,3,1]];
    webTJ.display(oArrs,1);
    var oV=webTJ.Array.getCSum(oArrs,0);       //将数组第一列元素求和
    webTJ.display(oV,0);
    

    20、一维数组变换  [返回]

    ## 函数
        webTJ.Array.getArrTransform(arr,mstr);
    ##参数
        【arr,mstr】
        【一维数组,转换表达式】
    

    代码样例

    webTJ.clear();
    var oArr=[3,2,5,1,2,5,4,3,3,1,2,4,2,1,1,5,4,1,3,1];
    webTJ.display(oArr,0);
    var oStr="Item[i]=Math.pow((Item[i]-3),2)";        //数组每个元素减3后平方
    var oBrr=webTJ.Array.getArrTransform(oArr,oStr);   //将数组各元素按表达式转换
    webTJ.display(oBrr,0);
    

    21、一维数组分组及频数、频率统计  [返回]

    ## 函数
        webTJ.Array.getGroup(arr,garr);
    ##参数
        【arr,garr】
        【待分组一维数组,分组组限数组】
    

    代码样例

    webTJ.clear();
    var oArr=[60,42,75,41,72,85,74,63,73,61,92,74,62,81,61,85,74,51,83,81];
    var oGrrs=[[0,60],[60,70],[70,80],[80,90],[90,100]];
    var oArrs=webTJ.Array.getGroup(oArr,oGrrs);     //按组限分组
    webTJ.display(oArrs,1);
    

    22、一维数组求第k最大元素  [返回]

    ## 函数
        webTJ.Array.getLarge(arr,k);
    ##参数
        【arr,k】
        【一维数组,第k最大】
    

    代码样例

    webTJ.clear();
    var oArr=[60,42,75,41,72,85,74,63,73,61,92,74,62,81,61,85,74,51,83,81];
    var oMax1=webTJ.Array.getLarge(oArr,1);     //求最大元素
    webTJ.display(oMax1,0);
    var oMax2=webTJ.Array.getLarge(oArr,2);     //求第2最大元素
    webTJ.display(oMax2,0);
    

    23、一维数组求第k最小元素  [返回]

    ## 函数
        webTJ.Array.getSmall(arr,k);
    ##参数
        【arr,k】
        【一维数组,第k最小】
    

    代码样例

    webTJ.clear();
    var oArr=[60,42,75,41,72,85,74,63,73,61,92,74,62,81,61,85,74,51,83,81];
    var oSmall1=webTJ.Array.getSmall(oArr,1);     //求最小元素
    webTJ.display(oSmall1,0);
    var oSmall2=webTJ.Array.getSmall(oArr,2);     //求第2最小元素
    webTJ.display(oSmall2,0);
    

    24、获得多维数组指定列  [返回]

    ## 函数
        webTJ.Array.getColData(arrs,col);
    ##参数
        【arrs,col】
        【二维数组,列数】
    

    代码样例

    webTJ.clear();
    var oArrs=[[3,2,5,1],[2,5,4,3],[3,1,2,4],[2,1,1,5],[4,1,3,1]];
    var oColData=webTJ.Array.getColData(oArrs,1); //获得数组第2列
    webTJ.display(oColData,0);
    

    25、提取一维数组不重复元素  [返回]

    ## 函数
        webTJ.Array.getUniquity(arr);
    ##参数
        【arr】
        【一维数组】
    

    代码样例

    webTJ.clear();
    var oArr=[60,42,75,41,75,85,74,63,73,60,"a",74,62,81,61,"b",74,51,"a",81];
    var oUrr=webTJ.Array.getUniquity(oArr);    //提取一维数组不重复元素
    webTJ.display(oUrr,0);
    

    26、统计一维数组(单项式)不重复元素频数和频率  [返回]

    ## 函数
        webTJ.Array.getURate(arr,urr);
    ##参数
        【arr,urr】
        【一维样本数组,不重复元素数组】
    

    代码样例

    webTJ.clear();
    var oArr=[60,42,75,41,75,85,74,63,73,60,"a",74,62,81,61,"b",74,51,"a",81];
    var oUrr=webTJ.Array.getUniquity(oArr);        //提取一维数组不重复元素
    var oSrrs=webTJ.Array.getURate(oArr,oUrr);     //根据不重复项统计一维频数和频率
    webTJ.show(oSrrs,2);
    

    27、一维数组中匹配元素位置(返回数组)  [返回]

    ## 函数
        webTJ.Array.getItemPos(arr,str);
    ##参数
        【arr,str】
        【一维样本数组,匹配元素】
    

    代码样例

    webTJ.clear();
    var oArr=[60,42,75,41,75,85,74,63,73,60,"a",74,62,81,61,"b",74,51,"a",81];
    var oStr="a";                                  //匹配元素值
    var oPrr=webTJ.Array.getItemPos(oArr,oStr);    //一维数组中匹配元素位置
    webTJ.display(oPrr,0);
    

    28、单项式分组样本转换为单项式样本  [返回]

    ## 函数
        webTJ.Array.getMonomial(arrs);
    ##参数
        【arrs】
        【二维样本数组】
    

    代码样例

    webTJ.clear();
    var oArrs = [[107,3],[112,5],[118,8],[123,14],[127,10],[132,6],[138,4]];
    var oSrr=webTJ.Array.getMonomial(oArrs);    //根据权数将分组样本转换为单项式
    webTJ.display(oSrr,0);
    

    注:该函数将单项式分组样本转换为单项式样本,从而利用单项式统计公式计算平均数等指标,不用单独用加权公式来计算。对于组距式样本,可按组中值化为单项式分组样本

    二、数组函数在统计数据处理中的运用###

    1、数据模拟和统计单项式分组样本

    I、  模拟生成均值为75、标准差为15的1000名学生成绩;
    II、 如果个别模拟成绩超过100分则改为100分;
    III、将数据按10列表格显示,并复制、粘贴模拟数据到EXCEL;
    IV、 按0-59、60-69、70-79、80-89、90-100对学生成绩进行分组;
    V、  显示分组数据表
    

    代码样例

    1.  webTJ.clear();
    2.  var oArr=webTJ.Array.getNormal(1000,75,15,0);
    3.  var oStr="Item[i]>100";                       
    4.  var oCount=webTJ.Array.getCountif(oArr,oStr);  
    5.  webTJ.display("共有"+oCount+"模拟成绩大于100!",0);
    6.  oStr="Item[i]<60";
    7.  oCount=webTJ.Array.getCountif(oArr,oStr);  
    8.  webTJ.display("不及格的学生为"+oCount+"名!",0);
    9.  oStr="if (Item[i]>100) {Item[i]=100;}";
    10. oArr=webTJ.Array.getArrTransform(oArr,oStr);
    11. var oArrs=webTJ.Array.getArrsfromArr(oArr,10);
    12. webTJ.show(oArrs,2);
    13. //用鼠标选中表中数据复制、粘贴到EXCEL中
    14. var oGrrs=[[0,60],[60,70],[70,80],[80,90],[90,101]];
    15. oArrs=webTJ.Array.getGroup(oArr,oGrrs);
    16. var oRowv=["下限","上限","频数","累计频数","频率","累计频率"];
    17. oArrs=webTJ.Matrix.getInsertRRow(oArrs,oRowv,0);
    18. webTJ.show(oArrs,2);
    

    注:运行代码样例前去掉每行代码的标号,逐行运行和调试参数,理解每行代码的含义,坚持完成全部样例代码

    代码功能

    2.  生成1000个均值为75、标准差为15的学生成绩,并赋值给一维数组变量oArr;
    3.  设置一维数组变量(oArr)一般项(Item[i])满足条件,即数组元素大于100;
    4.  统计大于100的数组元素;
    6.  设一般项小于60,即不及格;
    7.  统计不及格人数;
    9.  设置数组元素转换条件和转换方法,即如果数组某元素大于100,则转换为100;
    10. 将数组元素中大于100的元素转换为100;
    11. 将一维数组转换为二维数组(10列);
    14. 设定分组标准数组;
    15. 对修改过的学生成绩一维数组进行分组,并将分组结果赋值给二维变量Arrs;
    16. 设定表头一维数组;
    17. 将表头插入分组数据第一行;
    18. 显示分组数据表 
    

    2、系统数据导入和处理

    I、  导入系统数据(5000名学生注册信息格式化字符);
    II、 截取、并显示前100个字符;
    III、根据格式字符分隔符将所有注册信息转化为二维数组;
    IV、 表格形式显示数组前20条信息;
    V、  哪些学生是3月20出生?
    VI、 筛选来自吉林省考试全部达到80分的男生;
    

    代码样例

    1.  webTJ.clear();
    2.  var oIDName = "webGSData_students";
    3.  var oStr = webTJ.getGSData(oIDName);
    4.  webTJ.display(oStr.substr(0,100),0);
    5.  var oArrs=webTJ.getArrs(oStr,"|","&");
    6.  var oCDS="i<21";
    7.  var oBrrs=webTJ.Array.getSelect(oArrs,oCDS);
    8.  webTJ.display("包括标题共有"+oBrrs.length+"条数据!",0);
    9.  webTJ.show(oBrrs,2);
    10. oCDS="parseInt(Items[i][5].split('-')[1])==3 && parseInt(Items[i][5].split('-')[2])==20";
    11. oBrrs=webTJ.Array.getSelect(oArrs,oCDS);
    12. oBrrs=webTJ.Matrix.getInsertCol(oBrrs,0);
    13. var oStr="Items[i][0]=i";
    14. oBrrs=webTJ.Array.getCTransform(oBrrs,oStr);
    15. oBrrs[0][0]="序号";
    16. webTJ.display("3月20日生日学生列表(人数:"+oBrrs.length+")",0);
    17. webTJ.show(oBrrs,2);
    18. oCDS="Items[i][1]=='男' && Items[i][2]=='吉林' && Items[i][7]>=80 && Items[i][8]>=80 && Items[i][9]>=80";
    19. oBrrs=webTJ.Array.getSelect(oArrs,oCDS);
    20. oBrrs=webTJ.Matrix.getInsertCol(oBrrs,0);
    21. var oStr="Items[i][0]=i";
    22. oBrrs=webTJ.Array.getCTransform(oBrrs,oStr);
    23. oBrrs[0][0]="序号";
    24. webTJ.display("吉林省全部及格男生(人数:"+oBrrs.length+")",0);
    25. webTJ.show(oBrrs,2);
    

    代码功能

    2.  为了导入数据方便设置系统数据(5000学生注册信息)名称变量;
    3.  按系统数据名称数据(字符型);
    4.  显示前100个字符(substr(0,100)为JS字符截取函数);
    5.  根据字符串分隔符将数据转换为二维数组;
    6.  设置二维数组(表格)显示条件(i<21:i指行数,即显示前21行);
    7.  按指定条件筛选数据并赋值给数组变量oBrrs;
    10. 设置学生生日筛选条件(split、parseInt为JS函数,目的是在拆分生日列的月和日);
    11. 按给定出生月和日筛选数据;
    12. 为个输出表格添加序号,先在数组最左面添加列(此处调用的是webTJ.Matrix矩阵类函数);
    13. 为第1列(添加列)设置序号顺序变量;
    14. 在二维数组中第1列按行赋值为序号;
    15. 为二维数组第1行第1列(左上角)元素标题;
    18. 设置筛选条件(吉林省考试全部达到80分的男生) 
    

    三、在线数据操作练习###

    代码窗口

    注:可将例题实例代码复制、粘贴到“代码窗口”,点击“运行代码”获得计算结果(鼠标选择实例代码$ ightarrow$Ctrl+C:复制$ ightarrow$鼠标点击“代码窗口”使其获得焦点$ ightarrow$Ctrl+V:粘贴)

    运行效果

  • 相关阅读:
    剑指Offer(链表)-从尾到头打印链表
    Java数据结构与算法-链表
    剑指Offer(数组)-数组中重复的数字
    剑指Offer(数组)-二维数组的查找
    Java冒泡排序法实现
    springMVC全局异常配置
    CookieUtil工具类
    算法
    Java
    算法
  • 原文地址:https://www.cnblogs.com/cloudtj/p/6539231.html
Copyright © 2020-2023  润新知