数组是相同数据类型的元素按一定顺序排列的集合。若将有限个类型相同的变量的集合命名,那么这个名称为数组名。组成数组的各个变量称为数组元素,有时也称为下标变量。用于区分数组的各个元素的数字编号称为下标。数组是在程序设计中,为了处理方便, 把具有相同类型的若干变量按有序的形式组织起来的一种形式。这些按序排列的同类数据元素的集合称为数组。通常各种计算机编程语言都具备一定的数值运算能力,网页脚本Javascript语言具有强大和灵活多样的数组处理功能,充分利用JS数组编程知识可以解决几乎所有网络统计学方法。
在银河统计网和博客中,数组类函数(webTJ.Array)是网络统计类(webTJ)下的一个重要子类,主要用于数据处理和统计计算。在多少情况下,首先将数据导入数组变量(参见银河统计博文:数据输入、转换、展示和存储 - 网络统计类函数(1)),然后运用数组类函数(webTJ.Array)进行各类统计分析和运算。
线性代数中的矩阵是二维数组的特例。在银河网络统计学函数库中,webTJ.Array和webTJ.Matrix两个子类的函数经常相互调用。webTJ.Matrix子类侧重于建立模型,webTJ.Array子类侧重于数据处理。
为方便运行本文中样例代码,可打开网络统计学代码调试窗口,复制、粘贴代码到数据处理代码窗口中运行即可。
数组函数(子类名称:webTJ.Array)一览表
序号 | 函数名称 | 参数1 | 参数2 | 参数3 | 功能 | 备注 |
---|---|---|---|---|---|---|
1 | getArrfromArrs(arrs) | 二维数组 | * | * | 二维数组转换为一维数组 | * |
2 | getArrsfromArr(arr,col) | 一维数组 | 二维数组列数 | * | 一维数组转换为二维数组 | * |
3 | getNArrSort(arr,k) | 一维数组 | 排序类型 | * | 一维数量型数组排序 | 0升序、1降序、2乱序 |
4 | getSArrSort(arr,k) | 一维数组 | 排序类型 | * | 一维字符型数组排序 | 同上 |
5 | getNArrsSort(arrs,k,c) | 二维数组 | 排序类型 | 列 | 二维数量型数组排序 | 同上 |
6 | getSArrsSort(arrs,k,c) | 二维数组 | 排序类型 | 列 | 二维字符型数组排序 | 同上 |
7 | getQuantify(arrs) | 二维数组 | * | * | 数组量化 | * |
8 | getArrStr(arrs) | 二维数组 | * | * | 获取数组格式字符串 | * |
9 | getUniform(size,a,b,deci) | 样本量 | 下限 | 上限 | 生成均匀分布数组 | deci:保留小数 |
10 | getNormal(size,mesn,sd,deci) | 样本量 | 均值 | 标准差 | 生成正态分布数组 | 同上 |
11 | getRDrr(arrs,size) | 指标频数矩阵 | 样本量 | * | 按给定指标频数生成模拟样本数组 | * |
12 | getUnique(arr) | 一维数组 | * | * | 提取数组中不重复元素及频数和频率 | * |
13 | getCountif(arr,mstr) | 一维数组 | 计数条件表达式 | * | 一维数组条件计数 | * |
14 | getScreen(arr,mstr) | 一维数组 | 筛选条件表达式 | * | 一维数组元素筛选 | * |
15 | getSumif(arr,mstr) | 一维数组 | 条件表达式 | * | 一维数组条件求和 | * |
16 | getSelect(arrs,mstr) | 二维数组 | 筛选条件表达式 | * | 二维数组元素筛选 | * |
17 | getCTransform(arrs,mstr) | 二维数组 | 变换条件表达式 | * | 二维数组列变换 | * |
18 | getRTransform(arrs,mstr) | 二维数组 | 变换条件表达式 | * | 二维数组行变换 | * |
19 | getCSum(arrs,col) | 二维数组 | 求和列 | * | 二维数组按列求和 | * |
20 | getArrTransform(arr,mstr) | 一维数组 | 转换表达式 | * | 一维数组变换 | * |
21 | getGroup(arr,garr) | 待分组一维数组 | 分组组限数组 | * | 一维数组分组及频数、频率统计 | * |
22 | getLarge(arr,k) | 一维数组 | 第k最大 | * | 获得数组第k最大值 | * |
23 | getSmall(arr,k) | 一维数组 | 第k最小 | * | 获得数组第k最小值 | * |
24 | getColData(arrs,col) | 二维数组 | 列数 | * | 获得二维数组指定列 | * |
25 | getUniquity(arr) | 一维数组 | * | * | 提取一维数组不重复元素 | * |
26 | getURate(arr,urr) | 一维样本数组 | 不重复元素数组 | * | 统计一维数组(单项式)不重复元素频数和频率 | * |
27 | getItemPos(arr,str) | 一维样本数组 | 匹配元素 | * | 一维数组中匹配元素位置 | * |
28 | getMonomial(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:粘贴)运行效果