您的位置:首页 > Web前端 > JavaScript

JS高级应用之数组基础

2014-01-13 21:31 453 查看
数组向来是我的弱项,通过这次的视频学习自我感觉比以前进步了不少,跟其他人还是差很远的,这次在JavaScript正好学习到了,就总结一下给以后的学习当个工具了。废话不多说了,进入正题:
数组对象的作用是:使用单独的变量名来存储一系列的值。下面从不同方面阐述数组:

1.数组的创建

a. 创建Array对象的方法:

1) 创建一个数组

new Array();

2) 创建一个数组并指定长度,注意不是上限,是长度。

new Array(

size

);

3) 创建一个数组并赋值

new Array(

element0, element1, ..., elementn);

以上创建方式也可以使用[]操作符

b. 例子:

function arrayTest(){

            //使用new Array()
            var array1 = new Array();
            //使用[]操作符
            var array2=[];
            
            //创建的同时定义数组中的元素
            //使用new Array()方式
            var array3=new Array(1,2,3);
			  array3[0]=1;
			  array3[1]=2; 
			  array3[2]=3;
            //使用[]操作符
            var array4=[1,2,3];
            
            //创建多维数组
            //使用new array()方式
            var array5=new Array(1,new Array(2,3),4);
            //使用[]操作符
            var array6=[1,[2,3],4];}

2.数组的下标操作

//获取数组中的某个元素的值
            alert(array3[1]);   //2

            //设置数组中某个下标对应的元素值
            array4[2]=111;  //替换数组中原来的值3为111

            //访问多维元素的值
            alert(array5[1][0]);  //2

            //javascript中的数组是可以动态改变大小的,因此
            //可以直接给一个不存在的下标设置元素值
            array6[99]=100;      //直接给第100项赋值100


3.数组的方法

a. 常用方法

常用方法画了一张图,如下:



b. 举例

针对上面图片中提到的方法,进行一一举例,同时将结果也表示了出来:

//concat,这个方法可以用来做数组的连接或者说合并
            //原数组内容不会变更,将返回一个新的数组
            var array41=array4.concat(101,102,103); //1,2,111,101,102,103
            var array42=array4.concat([104,105]);   //1,2,111,104,105  [[104,105]]才是添加二维数组
            var array43=array4.concat(array4);      //1,2,111,1,2,111
            
            //join,这个方法可以用来将数组当中的元素,按照指定的
            //分隔符连接成字符串输出,原数组的内容不变
            var strArray431=array43.join("");//1211112111
            var strArray432=array43.join("+");//1+2+111+1+2+111
            
            //slice,这个方法可以返回当前数组的子数组,原数组的内容不会改变
            //从0下标开始,到3下标之前的元素返回成新的数组[1,2,111]
            var sliceArray1=array43.slice(0,3);
            //从4下标开始,到数组尾部的所有元素都返回成新的数组[2,111]
            var sliceArray2=array43.slice(4);
            //从当前数组的倒数第3个数开始,到当前数组倒数第一个元素之前
            //的所有内容,返回一个新的数组[1,2];
            var sliceArray3=array43.slice(-3,-1);
            
            //push,pop,在数组尾端追加(push)或分离(pop)元素,将会修改元数组的内容
            array43.push(200);         //1,2,111,1,2,111,200
            array43.push(201,202);     //1,2,111,1,2,111,200,201,202
            array43.push([203,204]);   //1,2,111,1,2,111,200,201,202,[203,204] 
            array43.push(array41);
            //pop只会返回当前数组的最后一个元素(将其从原来的数组分离出来)
            var popArray=array43.pop();  //[array41内容]
            var popArray=array43.pop();  //[203,204]
            
            //unshift,shift,在数组的开头进行追加(unshift)和分离(shift)
            //操作,将会改变原数组的内容;
            array43.unshift(300);      
            array43.unshift(301,302);
            array43.unshift([303,304]);
            //shift将返回当前数组的第一个元素,并将其从原数组分离出来
            var shiftArray1=array43.shift();//[[303,304]]
            var shiftArray2=array43.shift();//[301]
            
            //reverse,这个方法可以反转数组中的元素,修改原数组的内容
            array43.reverse();
            
            //sort,这个方法可以对数组中的元素进行排序,修改原数组的内容
            array43.sort();  //默认按照字母序对数组中的元素进行升序的排列
            //可以自己编写方法,使得sort按照一定的顺序进行排序
            //按照数值大小,进行了一个升序的排列。如果返回的是负值,则a会出现在b的前面
            array43.sort(function(a,b){
               return a - b; //降序排列可以用return b - a;
            }); 
            
            //splice,可以删除数组中的一部分元素,并且把删除的原数组返回
            //也可以在指定位置添加元素,原数组内容发生变更
            var spliceArray1= array43.splice(4,2);//从下标为4的元素开始,删除两个元素
            var spliceArray2= array43.splice(4);//从下标为4的元素开始,删除到末尾。
			
            //可以在数组任意位置添加元素,比unshift和push更加灵活
			//arrayObject.splice(index,howmany,item1,.....,itemX)
            array43.splice(1,0,400,401);//在下标为1的元素之前,添加400,401:1,400,401,1,2,2
            array43.splice(1,0,[500,501]);//在下标为1的元素之前插入[500,501]:1,[500,501],400,401,1,2,2
			array43.splice(1,4,111);//从下标1开始删除4个元素,并添加元素111:1,111,2,2


4.数组的运算

function test1(){
			//var t2=new Array(); 
			//t2[0]=1; 
			//t2[1]=10; 
			//t2[2]=100;
			//下面的写法跟上面是完全一致的
			var t2=new Array(1,10,100); //若定义成new Array(3),则结果会是3个NaN(Not a number)
			test2(t2); //传地址(数组) 
		}
		
		//遍历数组对象t2,并每个元素加1
		function test2(var2) { 
			for(var i=0;i<var2.length;i++) { 
			var2[i]=var2[i]+1; 
			} 
			alert(var2); //2、11、101


上面的几点是数组中非常基本的一些知识,也是学习好JavaScript的基本功,由于JSON可能在以后大量的使用,数组和循环等等更需要仔细认真的掌握,后面在遇到数组高级应用的时候会继续补充。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: