JavaScript统计数据处理(1) - 数组

JavaScript是一种广泛使用网页编程语言,
在浏览器中运用JavaScript技术处理统计数据具有最佳的推广传播效果

数组是相同数据类型的数据按一定顺序排列的集合,组成数组的数据称为数组的元素。即数组是在程序设计中,为了处理方便,把具有相同类型的数据按有序的形式组织起来,这些按序排列的同类数据元素的集合称为数组。

在程序执行过程中,数组具有运行速度快、占用内存少、处理方便等优势。几乎所有编程语言中都有数组这一数据类型和相关原生函数。JavaScript(简称JS)也不例外,随着版本的不断更新发展,JS数组功能也在不断提升。统计学中不同类型统计数据(截面数据、时间序列和面板数据)都可以通过JS数组来处理。熟练掌握JS数组技术是进入统计数据编程领域的基础。


导读

1、数组定义的方式

 [返回]

I、使用构造函数
var aArr = new Array();
var bArr = new Array(10); 
var cArr = new Array("first", "second", "third"); 

II、使用构造函数
var valArr = [23, 45, 41, 87]; 
var strArr = ["first", "second", "third"]; 

掌握JS数组对于网上统计数据处理致关重要。在银河网络统计学平台中,一般使用JS数组直接量方式表达和处理统计数据。

2、按静态方式创建数组

 [返回]

var arr1 = [23,45,67,12,33]; //一维数组
var arr2 = [[23,45,67],[21,12,33],[41,15,36]]; //二维数组(3行x3列)
var arr3 = [[23,45],[21,12,33,12],[41,15,36]]; //二维数组(不规则)
var arr4 = [[23,45],123,[41,[15,36]]]; //混合数组

3、按动态方式创建数组

 [返回]

var arr = [];   //空数组
arr[0] = 10;    //第1个元素为10
arr[1] = 12;
arr[2]=[]       //第3个元素为空数组
arr[2][0]=15;  //第3个数组元素的第1个元素为15
arr[2][1]=20;  //第3个数组元素的第1个元素为15

注:数组是一组有序的数据集合,其索引从0开始

4、数组元素的引用和修改

 [返回]

console.clear();  //清空输出工作台
var arr = [23,45,67,12,33];
var oVal = arr[1]; //引用:将数组第2个元素45赋值给变量oValue
arr[4] = 50;  //修改:将数组第5个元素33改为50
var arrs = [[23,45],123,[41,[15,36]]];
arrs[0][1]      //45
arrs[1]         //123
var val = arrs[2][1][0]   //15
console.log(val);    //输出指定变量
arrs[0][1] = 99;
arrs[1] = 100;
arrs[2][1][0] = 50;

5、添加和删除元素

 [返回]

console.clear();
var arr = [23,45,67,12,33];
arr.push(100,200);        //添加数据到结尾
arr.unshift(200,100);     //添加数据到开始
console.log(arr);
arr.pop();                //删除原数组最后一项
arr.shift();              //删除原数组第一项
console.log(arr);
arr = [23,45,67,12,33];
arr.splice(3,0,100,200)  //插入100和200到67后面
console.log(arr);
arr = [23,45,67,12,33];
arr.splice(2,1,100,200) //将100和200插入45之后并删除67
console.log(arr);

注:splice函数对数组插入并删除元素。arr.splice(index,howmany,item1,item2,...)中,index:指定新元素插入(或删除)的位置;howmany:要删除的项目数量(howmany为 0,则为插入);item1,item2,...:要插入(或删除)的新元素项

6、数组的截取、拷贝和合并

 [返回]

console.clear();
var arr;
var arr1 = [2,4,7,1,3];
var arr2 = [3,5,6,2,7];
var arr3 = [4,5,1,7,9];
arr = arr1.slice(1,4); 
//以数组的形式返回数组第1-3个元素,注意不包括第4个元素;
//如果省略第2个参数4,将复制第1个参数1之后的所有元素
arr = arr1.slice(0); 
//返回数组的拷贝数组,注意是一个新的数组,不是指向
arr = arr1.concat(arr2,arr3); 
//将多个数组连接为一个数组,返回连接好的新的数组
arr = arr1.concat(arr2,100,200);
arr = arr1.concat(100,200,arr2,200,100);
arr = arr1.concat("myArray",arr2); 
console.log(arr);  

7、一维数组排序

 [返回]

console.clear();
var arr,arr1,arr2,arr3,arr4;
arr = [2,4,7,1,3];
arr1 = arr.slice(0); 
arr2 = arr.slice(0);
arr3 = arr1.sort(); //对数组元素排序(升序)
arr4 = arr2.reverse(); //反转元素(最前的排到最后、最后的排到最前)
console.log(arr3.reverse());  //输出arr3的倒序
var arr5=["George","John","Thomas","James","Adrew","Martin"];
arr5.sort(); //直接按英文字母顺序排序
console.log(arr5);
//两个比较的元素分别为a, b
var arr = [12,21,24,32,45,32,12,32,43];
//升序
arr.sort((a, b) => {
    return a - b
})
console.log(arr)
//降序
arr.sort((a, b) => {
    return b - a
})
console.log(arr)
//乱序
arr.sort((a, b) => {
    return Math.random()*2 - 1;
})
console.log(arr)

注:arrNew = arrOld.sort()这行代码运行后,数组arrOld同时被排序,原数组的结构被打乱。为了保留原数组,可先用这行代码arrCopy = arrOld.slice(0)将数组arrOld备份到数组arrCopy中保留。arrNew = arrOld.reverse()同理。

8、数组常用方法总结

 [返回]

console.clear();
var arr, str;
var arr1 = [2,4,7,1,3];
var arr2 = [2,9,6];
var arr3 = [3,6,5,3];
arr = arr1.concat(arr2,arr3);  //连接两个或更多的数组,返回新数组
arr = arr1.slice(1,4);  //按指定起始下标返回数组片段
str = arr1.toString();  //把数组转换为字符串
str = arr1.join(":");   //返回指定分隔符的字符串
arr1.pop();  //删除数组最后一个元素
arr1.push(9,9,9);  //向数组的末尾添加一个或更多元素
arr1.reverse();  //颠倒数组中元素的顺序
arr1.sort();  //对数组的元素进行正序排序
arr1.shift();  //删除第一个元素并返回数组
arr1.unshift(8,8,8);  //向数组的开头添加一个或更多元素
arr1.splice(1,2,7,7); //删除元素,并向数组添加新元素
console.log(arr); 

最后需要强调一下,JS数组的属性不多,最常用的设length属性,即返回数组元素总数。样例代码如下:

console.clear();
var arr, str;
var arr1 = [2,4,7,1,3];
var arr2 = [2,9,6];
console.log(arr1.length);   //5
console.log(arr2.length);   //3

本文只介绍了JS数组的基本用法,当我们循序学完函数、对象等知识后,“数组进阶”还将进一步介绍JS数组的其它强大功能,从而满足承载和处理统计数据的要求。

提示:本页中JS脚本代码可复制粘贴到JS代码运行窗口调试体验; 文本编辑快捷键:Ctrl+A - 全选;Ctrl+C - 复制; Ctrl+X - 剪切;Ctrl+V - 粘贴

posted @ 2020-05-16 23:02  银河统计  阅读(2301)  评论(0编辑  收藏  举报