JS高级应用之数组基础
数组向来是我的弱项,通过这次的视频学习自我感觉比以前进步了不少,跟其他人还是差很远的,这次在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可能在以后大量的使用,数组和循环等等更需要仔细认真的掌握,后面在遇到数组高级应用的时候会继续补充。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。