数组的常用属性和方法
数组的属性:
length:1.告诉我们数组的长度:数组名.length
2.通过该属性可以改变数组的长度
数组的常用方法:
1)unshift:在数组最前面添加一个或者多个元素,多个元素之间用逗号隔开,返回值是新数组的长度。
var a = [2,3,4,5,6];
var b = a.unshift(1);//在最前面插入1
alert(a);
alert(b);
shift:删除数组最前面的元素,返回值是删除的元素。
var a = [2,3,4,5,6];
var c = a.shift();
alert(a);
alert(c);
2)indexOf:查找在数组中重复出现的元素第一次出现的位置,返回值是该元素的下标。
在数组中找指定元素,如果找到返回元素下标,否则:返回-1,
var a = ["我","爱","中","国","更","爱","自","己"];
var b = a.indexOf("爱");
alert(a);
alert(b);
lastIndexOf:查找数组中重复出现的元素最后一次出现的位置,返回值是该元素的下标。
var a = ["我","爱","中","国","更","爱","自","己"];
var c = a.lastIndexOf("爱");
alert(a);
alert(c);
3)push:在数组最后面添加一个或者多个元素,多个元素之间用逗号隔开,返回值是新数组的长度。
var a = ["我","爱","中","国","更","爱","自","己"];
a.push("!","#");
alert(a);
pop:在数组中删除并返回数组的最后一个元素,返回值是删除的元素。
var a = ["我","爱","中","国","更","爱","自","己"];
a.pop();//删除元素
alert(a);
4)slice(start,end):提取数组中指定连续的子数组。含start,不含end
var a = ["我","爱","中","国","更","爱","自","己"];
var b = a.slice(2,4);//显示为“中,国”
alert(b);
5)splice(开始删除/插入位置的下标,要删除元素的个数,需要删除/插入的元素),splice有“剪接”的含义。前面两个参数定义“剪”的部分,第三个参数定义“接”的部分,经过不同的参数组合就可以实现以下三个功能:
1.删除操作:删除数组中指定的任意元素;
2.插入操作:在数组中指定位置插入元素;
3.替换操作:在数组中替换指定位置的元素。
注意:(1)操作返回的结果是:被删除元素 组成的数组;
如果操作没有元素,则返回空。
(2)操作(删除/添加)是直接对数组本身进行操作。
var a = ["我","爱","中","国","更","爱","自","己"];
a.splice(4,4);//从下标为4的元素开始删除后面4个元素
alert(a);
var a = ["我","爱","中","国"];
a.splice(3,0,"华","人","民","共","和");//“华”从下标为3开始的位置插入
alert(a);
var a = ["我","爱","中","国"];
a.splice(2,2,"自","己");//将“中国”替换为“自己”,显示为“我,爱,自,己”
alert(a);
6)reverse:将数组中的元素,反序输出。在原数组的基础上进行反序输出,不会重新创建新数组。
var a = [1,2,3,4];
a.reverse();//输出结果为4,3,2,1
alert(a);
7)map:原数组的映射,经过函数的加工,返回给一个新数组。
一般我们传递的参数都是数值、字符串等类型的数据,有些时候可能需要传递一个函数,那么如何去传递一个函数呢?
var a = [2,3,4,5];
var b = a.map(fun);
function fun(value,index,self){
return value * value;
}
我们可以将以上内容简写为:
var a = [2,4,6,8];
var b = a.map(function(value,index,self){
return value * value;
});
这就是匿名函数。