1、indexOf(el)
该方法从数组中返回指定元素的索引。
var arr = [1,2,3,4,5,6];
var num = arr.indexOf(3); //num为2
2、slice(起始索引,结束索引)
该方法截取数组中指定索引之间的元素,包含起始索引的元素,但不包含结束索引的元素。slice若是只传单个参数,则从该参数位置起截取到数组结束。若是不传参数,则截取整个数组。
var arr = [a,b,w,r,y,v,s,e];
var arr2 = arr.slice(2,5); //arr2 = [w,r,y]
var arr3 = arr.slice(2); //arr3 = [w,r,y,v,s,e]
3、splice(索引,长度,元素)
该方法可以从数组从删除指定索引起一定长度的元素,也可以在指定索引处添加若干元素。
var arr = ['a','b','c'];
arr.splice(1,2,'d','e'); //从索引1位置开始删除2个元素,然后再添加2个元素。arr = ['a','d','e']
arr.splice(2,1); //只删除,不添加元素。arr = ['a','d']
arr.splice(1,0,'e','f'); //只添加,不删除。arr = ['a','d','e','f']
4、push和pop
push()方法向数组的末尾添加若干元素,pop()方法则把数组的最后一个元素删除。
var arr = [1,2,3,4,5,6];
arr.push(7); //arr = [1,2,3,4,5,6,7]
arr.pop(); //arr = [1,2,3,4,5,6]
5、shift和unshift
unshift方法向数组的头部添加若干元素,shift方法则删除数组的第一个元素。
var arr = [1,2,3,4,5];
arr.unshift(6,7); //arr = [1,2,3,4,5,6,7]
arr.shift(); //arr = [2,3,4,5,6,7]
6、reverse
该方法会将数组元素反转。
var arr = [1,2,3,4,5];
arr.reverse(); //arr = [5,4,3,2,1]
7、concat
该方法将两个数组拼接起来,返回一个新数组。
var arr1 = [1,2,3];
var arr2 = ['a','b','c'];
var arr3 = arr1.concat(arr2); //arr3 = [1,2,3,'a','b','c']
var arr4 = arr2.concat(['d','e']); //arr4 = ['a','b','c','d','e']
8、join
该方法可以把数组元素通过指定的符号连接起来。
var arr = ['l','i'.'k','e'];
str = arr.join("-"); //str = 'l-i-k-e'
9、map
该方法接收一个函数作为参数,并返回一个新数组,新数组的元素为原始数组元素调用函数处理之后的值。
function add(x) {
return x+1;
}
var arr = [1,2,3];
var arr2 = arr.map(add); //arr2 = [2,3,4]
10、reduce
该方法把一个函数作用在数组元素上,这个函数必须接收两个参数。reduce把结果继续和序列的下个元素做计算。
//栗子:对数组求和
var function add(x,y){
return x+y;
}
arr = [1,2,3,4,5];
var x = arr.reduce(add); //x = 15;
11、filter
该方法用于把数组的某些元素过滤掉,然后返回剩下的元素。和map方法类似filter方法也接收一个函数,和map不同的是filter把传入的函数依次作用与数组元素,然后根据返回值是true还是false,决定保留还是丢弃改元素。
//在某个数组中剔除偶数
function evenFn(x){
return x%2!== 0
}
var arr = [1,2,3,4,5,6];
var arr2 = arr.filter(evenFn); //arr2 = [1,3,5]
利用filter方法也可以做到数组去重。
var arr1 = [1,2,3,4,5,5,3,6];
var arr2 = arr1.filter(function(el,index,arr){
return arr.indexOf(el) === index
});
//arr2 = [1,2,3,4,5,6]
利用indexOf方法总是返回查找到的第一个索引值,后续重复元素的索引值与indexOf返回的索引值不一致,因此被剔除了。