javascript之数组

无论哪一种语言都离不开数组,javascript也不例外。数组是值的有序集合,这些值称为元素。数组有序不是说值的内容大小排序,是位置有序。位置可以用数字表示,称为索引。由于javascript是软类型的,所以数组也是无类型的。这个意思呢就是数组中可以放任意类型的值,可以是String、Number、Boolean、null、undefined、对象、数组、表达式等,每个数组中的元素可以为不同类型。

创建数组:

           直接创建:

           varempty=[ ];//空数组 var arr=[1,2,3,4];//含有四个元素的数组var misc=[1,”a”,true,];//含有3个不同类型值的数组。注意在数组中是允许以逗号结尾的,所以[,,]这样的是两个元素,不是三个。

           调用构造函数Array()创建:

           调用时没有参数:vara=new Array();

           调用指定长度:vara=new Array(10);//注意没有逗号,数组中也没有存储任何值,访问a[0]、a[1]…等都是undefined

           调用有元素:vara=new Array(1,2,3,”test”);

数组元素的读写:

           使用[ ]操作符访问数组中的元素。数组是可以动态添加元素的var a=[]; a[0]=1;a[1]=2;a.length;//2

在javascript中数组也是对象,也有属性。所有的索引都是属性,但是只有在0-232-2之间的整数属性才是索引。注意可以使用负数或非整数来索引数组,这种情况下数值转为字符串来作为属性名,就是给数组添加属性。var a[1.11]=true;//创建一个名为“1.11”的属性,并赋值为true。如果访问不存在的索引返回undefined。

稀疏数组:

就是包含从0开始不连续的数组。注意当数组创建时省略值不会创建稀疏数组。省略的元素是存在的只不过为undefine罢了。这个和元素不存在有点区别,var a1=[,,,];var a2=new Array(); 0 in a1;//true,在索引0处有元素 0 in a2;//false,a2在索引0处没有元素。在稀疏数组[1,,3]省略的值不存在。

数组长度:

    每个数组有一个length属性,就是这个length.区别其他对象。[].length;//0数组中没有元素。[1,2,3].length;//3,最大索引为2,长度为3。对于稀松数组,length大于数组中元素的个数。

    可以通过修改length属性的值删除元素。var a=[1,2,3,4,5];a.length;//5a.length=3;//目前a为[1,2,3]a.length=0;//a为[] a.length=6;//长度为6,但是没有元素,就像new Array(6). Length属性值设置为大于当前的数组的长度,只是在数组的末尾创建一个空白区域。

    可以使用Object.defineProperty()让数组的length属性变为只读。var a=[1,3,3,4];

Object.defineProperty(a,”length”,{writable:false});将不会修改length属性的值。

数组元素的添加和删除:

    索引添加:a=[];a[0]=1;a[2]=3;

    Push()方法:在数组末尾增加一个或多个元素,var a=[];a.push(“001”);a.push(“002”,”003”);

    Unshift()方法:在数组头部出入一个或多个元素;

    Pop():删除数组末尾的元素,length-1,并返回删除的值。

    Shift():删除头元素,length-1,并返回删除的值。

    Delete():删除数组中索引的位置不再有元素。a=[1,2,3];delete a[0];//数组a在索引0上不再有元素。但是length属性的没有变。

数组遍历:

    For循环遍历:var a=[1,2,3]; for(var i=0;i<a.length;i++){//操作}

    For/in遍历:能够遍历自有和继承的枚举属性,for(var i in a){if(!a.hasOwnProperty(i)) continue;//判断是不是自有属性,如果不是跳过本次循环}

数组方法:

1. join():将数组中的所有元素转化为字符串并连接在一起,返回。可以在join()中指定分隔符,如果不指定就是默认逗号。var a=[1,2,3];a.join();//返回“1,2,3”.Array.join()和String.split()方法的逆向操作,split是将字符串分割为数组。

2. reverse():将数组中的元素颠倒顺序。

3. sort():将数组中的元素进行排序并返回排序后的数组。如果不传入参数就以字母表的顺序排序;但是要传入参数,就必须传入一个比较函数,这个函数决定了它的两个参数在排序的数组中的先后位置。比较函数返回负数那就是第一个参数在前,返回0他们的顺序无关紧要,返回正数第二个参数在前。

4.concat():Array.concat()方法创建一个数组并返回,返回的数组时连接后的数组。

.....

数组类型:

Array.isArray()判断是不是数组,如果是返回true,不是返回false;



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值