您现在的位置:首页 >> JS&Jq >> 内容

JS高级应用之数组基础

时间:2014-1-26 14:59:07 点击:

  核心提示:数组向来是我的弱项,通过这次的视频学习自我感觉比以前进步了不少,跟其他人还是差很远的,这次在JavaScript正好学习到了,就总结一下给以后的学习当个工具了。废话不多说了,进入正题:数组对象的作用是...

数组向来是我的弱项,通过这次的视频学习自我感觉比以前进步了不少,跟其他人还是差很远的,这次在JavaScript正好学习到了,就总结一下给以后的学习当个工具了。废话不多说了,进入正题:

数组对象的作用是:使用单独的变量名来存储一系列的值。下面从不同方面阐述数组:

1.数组的创建

a. 创建Array对象的方法:

1) 创建一个数组

new Array();

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

new Array(

size

);

3) 创建一个数组并赋值

new Array(

element0, element1, ..., elementn);

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

b. 例子:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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.数组的下标操作

?
1
2
3
4
5
6
7
8
9
10
11
12
//获取数组中的某个元素的值
 alert(array3[1]);   //2
 
 //设置数组中某个下标对应的元素值
 array4[2]=111//替换数组中原来的值3为111
 
 //访问多维元素的值
 alert(array5[1][0]);  //2
 
 //javascript中的数组是可以动态改变大小的,因此
 //可以直接给一个不存在的下标设置元素值
 array6[99]=100;      //直接给第100项赋值100

3.数组的方法

a. 常用方法

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

\

b. 举例

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

<喎�"http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHByZSBjbGFzcz0="brush:java;"> //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.数组的运算

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
               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);="" 211101="" <="" pre="">
<p></p>
<p>    上面的几点是数组中非常基本的一些知识,也是学习好JavaScript的基本功,由于JSON可能在以后大量的使用,数组和循环等等更需要仔细认真的掌握,后面在遇到数组高级应用的时候会继续补充。</p>
 
<p></p>                     </var2.length;i++)>

作者:不详 来源:网络
共有评论 0相关评论
发表我的评论
  • 大名:
  • 内容:
  • 青春网络编程技术(www.qcfupo.com) © 2020 版权所有 All Rights Reserved.
  • Powered by qcfupo! V3.0sp1
  • 百度友情链接: 百家乐[www.chinawestnews.net/aomenbaijiale/] 赌博网[www.chinawestnews.net/amdbwz/] 海立方[www.bjl.gov.cn/bjgylc/] 娱乐城[www.gtxrmzf.gov.cn/mapai/] 娱乐城[www.hfsf.gov.cn/yfgj/] 威尼斯人[www.hllinkou.gov.cn/baijile/] 澳门威尼斯[www.jjwgj.gov.cn/wnsr/] 888真人[www.lagm.gov.cn/888zhenren/] 百乐坊[www.laoling.gov.cn/blfylc/] 现金网[www.longyu.gov.cn/xjw/] 百家乐[www.chinawestnews.net/ambjl/] 新葡京娱乐场[www.sjzedu.gov.cn/jsylc/] 时时彩[www.snjw.gov.cn/ssc/] 赌博[www.chinawestnews.net/aomendubo/]