JavaScript 数组

  在JavaScript1.1种引入了数组。
  JavaScript作为一种无类型语言,其数组的元素可以具有任意的数据类型,同一数组的不同元素可以具有不同的类型。数组的元素甚至可以包含其它数组。 

  数组的创建是用构造函数Array()和元素符new创建的。下面列出三种不同参数的构造函数。
     var a = new Array();
     var a = new Array("a","bc",13,"a,b,c",true); //数组length属性值为参数个数
     var a = new Array(10);          //指定数组length属性值,每个元素值都是undefined
  还可以通过数组直接量创建。
     var a = ["a","bc",13,"a,b,c",true];

  数组的下标必须是大于等于0并小于2的32次方减1的整数,不在这一范围内,JavaScript将它转换为字符串,用生成的字符串作为对象属性的名字,而不是作为数组下标。如:
    a[-1.23] = true;     //创建了一个名为"-1.23"的属性。

  不同于C和Java,JavaScript中数组可以具有任意个数的元素,也可以在任何时候改变元素个数。我们要做的只是给新元素赋值。JavaScript中的数组下标可以不在一个连续的数字范围内,只有真正存储在数组中的元素才能分配到内存。
    a[0] = 0; a[9]= 9;     //0和9之间的元素不分配内存

  所有的数组都有一个length属性来说明这个数组包含的元素个数。而且length属性是自动更新的。length属性及可以读,也可以写,如果给length设置了一个比当前值小的值,数组将会被截断,如果给length设置一个比当前值大的值,未赋值的元素为undefined,且不分配内存。

  如果我们用delete方法删除数组中的元素,元素会变成未定义,但length属性不变。

  在JavaScript中并不支持多维数组,但我们可以用以数组为元素的数组创建非常接近多维数组的数组。

  数组的方法

  join()方法:可以把一个数组的所有元素都转换成字符串,然后再把它们连接起来。
     var a = [1,2,3]; 
     var s = a.join();     //s="1,2,3"
     var ss = a.join(",");   //s="1, 2, 3"
  与Array.join()方法相反,String.split()将字符串分割几个片断来创建数组。

 reverse()方法:Array.reverse()将颠倒数组元素的顺序并返回颠倒后的数组。
    var a = new Array(1,2,3);
    a.reverse();      //a[0]=3,a[2]=1

  sort()方法:Array.sort()是在原数组上对数组元素进行排序,返回排序后的数组。如果调用sort()时不传递参数,将按字母顺序对元素进行排序。如果数组包含未定义的元素,这些元素将被放在末尾。
  如果要按别的顺序来排序,必须将一个比较函数作为参数传递给sort()。该函数确定它的两个参数在排序数组中的前后顺序。如果第一个参数位于第二个参数前,那么比较函数应该返回一个小于0的数。如果第一个参数位于第二个参数后,那么比较函数应该返回一个大于0的数。如果两参数相等,那么比较函数应该返回0。

  concat()方法:Array.concat()能创建并返回一个数组,这个数组包含了调用concat()的原始数组的元素,其后跟随的是concat()的参数。

  slice()方法:Array.slice()返回的是指定数组的一个片断,或者说是子数组。它的两个参数分别指定要返回子数组的起止点。子数组包括第一个参数指定的元素和从那个元素开始到第二个参数指定的元素为止(不包括第二个参数所指定的元素)。如果只传给它一个参数,将返回从参数指定位置到原数组结束处所以元素。如果两个参数中有负数,负数所指定的是相对于数组最后一个元素而言的元素。

  splice()方法:Array.splice()是插入或删除数组元素的通用方法,它将在原数组上修改数组。splice()可以把元素从数组中删除,也可以将新元素插入到数组中,或者同时执行两种操作。它的第一个参数指定要插入或删除的元素在数组中的位置,第二个参数指定了要从数组中删除的元素个数,如果第二个参数被省略,那么将删除从开始元素到数组结尾的所有元素。从第三个参数开始,splice()可以有任意多个额外参数,它们指定要从第一个参数指定的位置处开始插入的元素。

  push()和pop()方法:push()和pop()方法让我们可以像使用栈一样使用数组。push()可以将一个或多个新元素附加到数组的尾部,然后返回数组的新长度。相反,pop()将删除数组的最后一个元素,减少数组的长度,返回它删除的值。这两个方法都是在原数组上修改数组,而非生成修改过的数组副本。联合使用push()和pop(),可以用JavaScript数组实现一个先进后出的栈。

  unshift()和shift()方法:它们与push()和pop()方法相似,不过实在数组头部进行元素的插入和删除。在插入或删除元素后,数组会相应地向后或向前移。

  toString()和toSource()方法:toString()方法可以将数组的每个元素都转换成一个字符串(如果必要的话,就调用它的元素的toString()方法),然后输出这些字符串的列表,字符串间用逗号隔开。
  toLocaleString()是toString()方法局部化版本。它将调用每个元素的toLocaleString()方法把数组元素转换成字符串,然后把生成的字符串用局部特定(和定义的实现)的分隔符字符串连接起来。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值