Javascript基础之数组

Posted Stark

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Javascript基础之数组相关的知识,希望对你有一定的参考价值。

创建

  • 使用数组直接量
var a=[1,2];
var a=["abc",1.2,["d",9.9]];
  • 使用构造函数
var a=new Array();
var a=new Arrar(10);//指定长度
var a=new Array(1,"sff","stark",2,["john",92]];//不如直接使用直接量

数组元素的读和写

使用[]操作符访问数组元素,索引从0开始。

添加或删除元素

var a=[];
a[0]="segment";//添加元素0
a[1]=3.14;//添加元素1
delete a[0];//删除0元素,但1元素不会下移,数组长度也不变,但变为稀疏数组

数组遍历

  • 使用for循环
var a=[1,2,3]
for(var i=0;i<a.length;i++){
    console.log(a[i]);
}

注意:对于稀疏数组,将会遍历到不存在的元素;可以使用(i in a)来判断元素是否存在。

  • 使用for/in循环
var a=[1,2,3]
for(var i in a){
    console.log(a[i]);
}

注意:for/in循环会遍历到继承的可枚举属性,可使用a.hasOwnProperty(i)进行过滤。

  • 使用forEach循环遍历
var a=[1,2,3];
a.forEach(function(x){
    console.log(x);//按照索引的顺序逐个传递给定义的函数;
});

数组函数

  • 数组函数均定义于Array.prototype,故数组均可使用
  • join():
var a=[1,2,3];
a.join(\'_\');// 返回"1_2_3",不加参数时,默认分隔符为‘,’;

String.split()函数互为逆操作。

  • reverse():

返回逆序的数组;

  • sort():

数组排序。无参数时,按照元素的字母顺序排序;有匿名函数function(a,b){}作为参数时,若参数a应在参数b前,则匿名函数应返回复制,反之返回正值,返回0则表示两个参数相等。

  • concat():

将所有参数作为元素添加到数组末尾,不会扁平化处理数组参数。

  • slice():

返回数组的片段,第一个参数表示开始的位置,第二个参数表示结束(不包括)的位置。

  • splice():

数组裁剪和插入,第一个参数表示开始的位置,第二个参数表示裁剪的元素个数,其余的参数均作为元素插入到数组中;若第三个参数没有,则只裁剪不插入;若第二个参数就没有,则从开始位置至结尾的元素均裁剪掉;

  • push()/pop():

push()在数组的尾部添加一个或多个元素,pop()删除数组的最后一个元素;

  • unshift()/shift():

unshift()在数组的头部添加一个或多个元素,shift()删除数组的第一个元素;
* forEach():
参数为匿名函数,可以有三个参数,第一个表示数组元素,第二个表示数组索引,第三个表示数组本身,依次为数组元素调用该匿名函数;循环结束前无法使用break语句终止,可以使用抛出foreach.break异常的方法结束循环;
* map():
依次为数组元素调用匿名函数,返回该匿名函数返回值组成的数组;

  • filter():

过滤数组,只保留匿名函数的返回值为true或能转化为true的元素;

  • every()some():

依次为数组元素调用匿名函数,若有一个返回值为false,则every()返回false,否则返回true;some()则相反,如有一个返回值为true,则some()返回true,否则返回false;

  • reduce()reduceRight():

reduce(function(x,y){},init),第一次调用xinit,y为数组第一个元素,返回值作为第二次的xy为数组的第二个元素,依次类推;如无init,则第一次调用x为第一个元素,y为第二个元素,返回值作为第二次调用的x,第二次调用的y为第三个元素,依次类推;若数组为空,且没有init参数,则报错;

以上是关于Javascript基础之数组的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript单行代码,也就是代码片段

DOM探索之基础详解——学习笔记

Javascript 优化项目代码技巧之语言基础

Javascript基础之数组

JavaScript 片段

JavaScript基础篇分享之三