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)
,第一次调用x
为init
,y
为数组第一个元素,返回值作为第二次的x
,y
为数组的第二个元素,依次类推;如无init
,则第一次调用x
为第一个元素,y
为第二个元素,返回值作为第二次调用的x
,第二次调用的y
为第三个元素,依次类推;若数组为空,且没有init
参数,则报错;
以上是关于Javascript基础之数组的主要内容,如果未能解决你的问题,请参考以下文章