定义数组:
- 构造函数
var arr1 = new Array(5);//长度为5的空数组
var arr2 = new Array(1,5);//[1,5]
- 字面量
var arr1 = [];
var arr2 = [1,2,3,4];
数组的长度 arr.length
数组的方法:
- 基本方法(添加,删除,修改)
var arr = [1,2,3];
arr[3] = 4;//添加
arr;//[1,2,3,4]
delete a[0];//删除
arr;//[undefined,2,3,4]
arr[1] = 5;//修改
arr;//[undefined,5,3,4]
栈方法
pop()去掉数组中的最后一位元素,并返回该元素
var arr = [1,2,3,4];
arr.pop();//4
arr;//[1,2,3]
- push(e)在数组的最后一位添加新元素,返回push后数组的长度
var arr = [1,2,3,4];
arr.push(5,6);//6
/*
arr[arr.length] = 5;
arr[arr.length] = 6;
*/
arr;//[1,2,3,4,5,6]
- shift()去掉数组中的第一位元素,并返回该元素
var arr = [1,2,3,4];
arr.shift();//1
arr;//[2,3,4]
- unshift(e)在数组的第一位添加新元素,返回unshift后数组的长度
var arr = [1,2,3,4];
arr.unshift(-1,0);//6
/*
arr[0] = 0;
arr[0] = -1;
*/
arr;//[-1,0,1,2,3,4]
splice(start,length,new)可以添加、删除、任何位置
删除,返回被删除的元素的数组
var arr = [1,2,3,4,5];
arr.splice(1,3);//[2,3,4]
arr;//[1,5]
- 添加,返回被删除的元素的数组
var arr = [1,2,3,4,5];
arr.splice(1,0,3);//[]
arr;//[1, 3, 2, 3, 4, 5]
- join(s)把数组连成字符串,返回的是字符串。原数组不变
var arr = [1,2,3,4];
arr.join('-');//'1-2-3-4'
arr.join('');'1234'
- slice(satrt,end)浅复制数组中的子片段,并返回;原数组不变
var arr = [1,2,3,4,5];
arr.slice(1,3);//[2,3]
arr;//[1,2,3,4,5]
- concat(arr)拼接数组,返回新的数组
var arr1 = [1,2,3,4],
arr2 = [5,6,7];
arr1.concat(arr2);//[1,2,3,4,5,6,7]
- reverse()把一个数组逆序,并返回
var arr = [1,2,3];
arr.reverse();//[3,2,1]
arr;//[3,2,1]
- sort()把数组按照字符串进行排序
var arr = [1,2,31,100,256];
arr.sort();//[1,100,2,256,31]
可以重写该方法
var arr = [1,2,31,100,256];
arr.sort(function(a,b){
return a-b;//a-b>0,则调换
});
ES5中数组的拓展
- Array.isArray(arr)判断一个对象是不是数组
var arr = [];
Array.isArray(arr);//true;
/*
//满足这两点的,也一定是数组
typeof arr;//'object'
arr instanceof Array;//true
*/
indexOf(e) lastIndexOf(e)
indexOf(e)查找元素的位置,找不到返回-1
var arr = [1,2,3,3,2,1];
arr.indexOf(2);//1
- lastIndexOf(e)反向开始查找
var arr = [1,2,3,3,2,1];
arr.lastIndexOf(2);//4
- forEach(ele,index,array)用于遍历数组(array是原数组本身)
var arr = [1,2,3,4,5];
arr.forEach(function(ele,index,array){
array[index] = ele +1;
});
arr;//[2,3,4,5,6]
- every(function(ele,index,array){}) some(function(ele,index,array){})
- every(function(ele,index,array){})每个结果都满足,返回true
var arr = [1,2,3,4,5];
arr.every(function(e,i,a){
return e > 0;
});//true
- some(function(ele,index,array){})有满足条件的,就返回true
var arr = [1,2,3,4,5];
arr.some(function(e,i,a){
return e > 3;
});//true
- map(function(ele){})遍历数组,返回新数组
var arr = [1,2,3];
/*map基于原数组操作*/
arr.map(function(e){
return e*e;
});//[1,4,9]
arr;//[1,2,3]
- filter(function(e){})挑选出满足条件的,返回新的数组
var arr = [1,2,3,4,5];
arr.filter(function(ele){
return ele > 2;
});[3,4,5]
arr;//[1,2,3,4,5]
返回数组的:
splice(start,length,new)
slice(satrt,end)
concat(arr)
reverse()
sort()
返回字符串的:
join(s)
返回位置的:
indexOf(e)
lastIndexOf(e)
遍历数组
forEach(ele,index,array)
every(function(ele,index,array){}) some(function(ele,index,array){})
map(function(ele){})
filter(function(e){})