Array可以包含任意类型的数据,并通过索引来访问每个元素;
用length取得数组的长度
var arr=[1,"2",null,true,{name:"array"}];
arr.length;
给Array的length重新赋值会改变Array的大小
arr.length=6; //[1,"2",null,true,{name:"array"},undefined]
arr.length=2; //[1,"2"]
也可以通过索引直接改变当前索引的值
arr[0]=2; //[2,"2"]
注意,如果通过索引改变值,索引大于当前的长度,也会改变Array的大小
arr[5]=5; // [2,"2",undefined,undefined,5]
join
join(),插入分隔符,返回连接后的字符串,经常用于向后端发送数据
var arr=[1,2,3,4,5];
var str=arr.split('|'); //1|2|3|4|5
push和pop
可以实现一种类似于栈方法的行为(后进先出),push向数组的末端插入数据,pop删除最后一位项并返回该项的值;
var arr=[1,2,3,4];
arr.push(5,6); //[1,2,3,4,5,6]
var item=arr.pop(); // 6
arr //[1,2,3,4,5]
shift和unshift
使用push和shift可以实现类似于队列方法的行为(先进先出),shift移除数组的第一项并返回该项,并减少数组的长度。
var arr=[1,2];
arr.push(3,4); //[1,2,3,4]
var item=arr.shift(); //1
arr; //[2,3,4]
unshift 能够在数组前端插入任意数的项,并返回数组长度;
var arr=[1,2];
var len=arr.unshift(-1,0); //4;
arr;//[-1,0,1,2]
reverse和sort
reverse()方法用于把当前数组数据项反转过来。
var arr=[1,2,3,4,5];
arr.reverse(); //[5,4,3,2,1]
sort() 方法用于把数组按照设定的规则进行排序,如果直接使用就默认进行排序;
var arr=[5,4,3,2,1];
arr.sort(); //[1,2,3,4,5]
sort() 可以接受一个函数,来实现自定义规则的排序;
var arr=[5,4,3,2,1];
arr.sort(function(value1,value2){
//value1 当前项,value2前一项 .value1是从第二项开始
if(value1<value2){
return -1;
}
else if(value1>value2){
return 1;
}
else{
return 0;
}
})
arr; //[1,2,3,4,5]
concat和splice
concat() 先创建当前数组的副本,然后把传入的参数(可以是数组)添加到数组的末端,返回一个新的数组;
var arr=[1,2];
var arr1=arr.concat(3,[4,5]); // [1,2,3,4,5]
splice()方法就比较多变了,大致总结为三种:
1、删除 接受两个参数,要删除的第一项的位置和要删除的项数
var arr=[1,2,3,4,5];
var arr1=arr.splice(0,2); //删除索引0开始的两项数据,并返回删除的项;
arr; //[3,4,5]
arr1; //[1,2]
2、插入 接受3个或3个以上的数据,前面2个参数分别是起始位置,0(删除0项),后面的是要插入的项;
var arr=[1,2,3];
var arr1=arr.splice(1,0,3,4,5); // [1,3,4,5,2,3]
3、替换 和插入是差不多的,只不过多了一个需要删除的项数,其实可以归为一类;
var arr=[1,2,3];
var arr1=arr.splice(1,2,3,4,5); //[1,3,4,5]
indexOf 和lastIndexOf
indexOf() 查询元素的位置,lastIndexOf() 从尾部开始往前查;
var arr=[1,2,3,1];
var index=arr.indexOf(2); //1
var index2=arr.lastIndexOf(1); //3
// 这个地方得注意,从尾部开始查询,并不代表索引就变了。比如此处,lastIndexOf(1),尾部第一位就是1,得到的索引并不是0 。