javscript 数组使用详解

1、数组创建


  创建数组应该是最简单的了,有用数组字面量创建和数组构造函数两种方法,见下:

1
2
var  array1 =  new  Array();
var  array2 = [];

  上面是创建数组的最常见的两种方法,其中第二种方法因为简单直观而被开发者推崇。其中,使用构造函数创建数组同样可以接收用于存放于数组的值,如:

1
var  array3 =  new  Array( "num1" , "num2" , "num3" ); //["num1", "num2", "num3"]

  同样,如果你传给构造函数的值是一个number,则该number如果大于0,则将是这个新创建数组的长度,如:

1
2
var  array4 =  new  Array(5);
array4.length; //5

  同样的效果下,我们还是推荐使用字面量的形式创建数组。

  2、数组检测


  有两种可以检测数组的方式,第一种使用instanceof,如下:

1
2
var  array5 = [];
array5  instanceof  Array; //true

  同时,Array也自带了isArray()的方法,如下:

1
2
var  array6 = [];
Array.isArray(array6 ); //true

  3、获取数组长度


  数组长度可以通过.length获取,如下:

1
2
var  array7 = [1,2,3,4];
array7.length; //4

  同时,数组的长度你也可以随时设置,如果设置的长度超过之前的,则后面的内容会自动补充维undefined,否则会截取有效长度的内容,如下:

1
2
3
4
5
6
7
var  array8 = [1,2,3,4,5];
console.log(array8.length); //5
array8.length = 8;
array8; //[1, 2, 3, 4, 5, undefined × 3]
 
array8.length = 3;
array8; //[1,2,3]

  4、获取或者设置数组值


  我们可以获取和设置数组的值,这里需要记住的是数组的下标是从0开始的,如下:

1
2
3
4
var  array9 = [1,2,3,4,5,6];
array9[2]; //3
array9[2] = 4;
array9[2]; //4

  5、数组字符串转换


  数组转换为字符串可以调用数组自带的toString()方法,返回数组的字符串形式,如下:

1
2
var  array10 = [1,2,3,4];
array10.toString(); //"1,2,3,4"

  另外,数组也有另外一个非常有用的函数join(),它接受一个字符串参数,用于插在数组各项之间形成字符串,如下:

1
2
var  array11 = [1,2,3,4];
array11.join( "||" ); //"1||2||3||4"

  6、数组添加和删除项


  前面讲过,我们可以设置length自动给数组添加一些undefined的值。同时,我们也可以通过访问一个超过数组本来的长度的数字下标以给数组添加项,如:

1
2
3
4
var  array12 = [1,2,3,4];
array12[5] = 5;
array12[6] = 6;
array12; //[1, 2, 3, 4, undefined × 1, 5, 6]

  另外,我们也可以通过push()给数组添加新的元素,如下:

1
2
3
var  array13 = [1,2,3,4];
array13.push(5,6);
array13; //[1, 2, 3, 4, 5, 6]

  与push()相对的是有一个pop()方法,用以删除数组中的项,且从数组最后一项开始,例如:

1
2
3
4
var  array14 = [1,2,3,4];
array14.pop(); //4
array14.pop(); //3;
array14; //[1, 2]

  同时,我们可以通过delete删除数组某项,但是只会删除该值,恢复默认的undefined,如下:

1
2
3
var  array15 = [1,2,3,4,5];
delete  array15[1];
array15; //[1, undefined × 1, 3, 4, 5]

  另外两个非常有用的方法shift()和unshift(),跟push()和pop()方法类似,其中,shift()方法用以从数组起始位置开始删除元素且返回被删除的元素,如下:

1
2
3
var  array16 = [1,2,4,5,6];
array16.shift(); //1
array16;[2,4,5,6]

  而unshift()与shift()相反,用于向数组起始位置添加元素,并且数组的原来元素分别后移,如下:

1
2
3
4
5
var  array17 = [1,2,3,4];
array17.unshift(2); //返回数组长度5,下同
array17.unshift(3);
array17.unshift(4);
array17; //[4, 3, 2, 1, 2, 3, 4]

  7、数组翻转和排序


  我们可以对一个数组进行翻转,也可以让一个数组进行排序,如下:

1
2
3
var  array18 = [21,14,54,35,23,44,103];
array18.reverse(); //[103, 44, 23, 35, 54, 14, 21]
array18.sort(); //[103, 14, 21, 23, 35, 44, 54]

  注意,数组默认排序并不是大小,而是按照对应字符串逐个编码排序的。你可以通过给sort()传递一个比较函数,类改变规则,如下:

1
2
3
var  array18 = [21,14,54,35,23,44,103];
array18.reverse(); //[103, 44, 23, 35, 54, 14, 21]
array18.sort( function (a,b){ return  a - b;}); //[14, 21, 23, 35, 44, 54, 103]

  8、数组连接


  我们可以把不同的数组连接到一起,如下:

1
2
3
var  array19 = [1,2,3];
var  array20 = [4,5];
var  array21 = array19.concat(array20); //[1, 2, 3, 4, 5]

  注意原数组都没有也不会发生改变。

  9、数组分割


  我们同样可以通过slice()把数组进行分割,它接受一个参数的话表示分割的起始位置,接受第二个可选的参数是表示结束的位置,如下:

1
2
3
var  array22 = [1,2,3,4,5,6];
var  array23 = array22.slice(4); //5,6
var  array24 = array22.slice(2,4); //3,4

  注意,分割的数组包含slice()的起始位置而不包含结束位置。

  10、最强大的splice()


  现在,该讲讲最强大的splice()函数了,它接受三个参数,可实现添加、删除、修改等不同的功能。看下w3school上它的语法,如下:

  ①添加元素

1
2
3
var  array25 = [1,2,3,4,5,6];
array25.splice(2,0,88,77); //[]  返回被删除的元素,这里没有删除,返回为空
array25; //[1, 2, 88, 77, 3, 4, 5, 6]

  ②修改元素

1
2
3
var  array26 = [1,2,3,4,5,6,7];
array26.splice(2,2,33,44); //[3,4]
array26; //[1, 2, 33, 44, 5, 6, 7]

  ③删除元素

1
2
3
var  array27 = [1,2,3,4,5,6,7];
array27.splice(2,2); //[3, 4]
array27; //[1, 2, 5, 6, 7]
原文出处: http://www.cnblogs.com/front-Thinking/p/4401458.html
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值