常用数组的操作方法:

添加删除(4个)

1.push()

将参数添加至数组的尾部,返回值为增加后数组的长度,原数组发生改变

let arr = [1,2,3,4,5]
console.log(arr.push(5))   // 6
console.log(arr) // [1,2,3,4,5,5]
2.pop()

从数组的尾部删除一个元素,返回删除的元素,不接收参数,原数组发生改变

let arr = [1,2,3,4,5]
console.log(arr.pop())     // 5
console.log(arr)  //[1,2,3,4]
3.unshift()

向数组中头部增加元素,返回增加元素后的数组的长度,原数组发生改变

let arr = [1,2,3,4,5]
console.log(arr.unshift(2))    // 6
console.log(arr)  //[2,1,2,3,4,5]
4.shift()

从数组的头部删除一个元素,返回删除的元素,不接收参数,原数组发生改变

let arr = [1,2,3,4,5]
console.log(arr.shift())  // 1
console.log(arr)   // [2,3,4,5]

截取类的方法(2个)

5.slice()

当1个参数时,表示从该参数对应的索引位开始截取,直至数组结束 。
有2个参数时,第一个表示起始位,第2个表示结束位,但是不包含第二个参数对应那个元素//原数组不改变

let arr = [1,2,3,4,5]
console.log(arr.splice(2,2))  //[3,4]
console.log(arr) // [1,2,3,4,5]
6.splice()
splice的作用:删除元素、替换元素、插入元素

当1个参数时,表示截取的起始位,返回截取的数组,原数组发生改变。
当2个参数时,第一个值表示索引位,第二个参数表示截取的长度
当3个参数时,第一个值表示索引位,第二个参数表示截取的长度,第三个及以后的参数会从截取位添加到数组中。

//删除元素
let arr = [1,2,3,4,5]
console.log(arr.splice(2,2))     //[3,4]
console.log(arr)    // [1,2,5]    

//替换元素
let arr = [1,2,3,4,5]
console.log(arr.splice(2,1,6))     //[3]
console.log(arr)    // [1,2,6,4,5]    

//插入元素
let arr = [1,2,3,4,5]
console.log(arr.splice(2,1,6,7))     //[3,4]
console.log(arr)    // [1,2,6,7,4,5]
7.reverse()

翻转 原数组发生改变

let arr = [1,2,3,4,5]
console.log(arr.reverse())    // [5,4,3,2,1]
console.log(arr)    // [5,4,3,2,1]
8.sort()

将数组进行排序,返回值是排好的数组,默认是按照最左边的数字进行排序,不是按照数字大小排序的,见例子。

let arr = [2,10,6,1,4,22,3]
console.log(arr.sort())   // [1, 10, 2, 22, 3, 4, 6]

let arr1 = arr.sort((a, b) =>a - b)  
console.log(arr1)   // [1, 2, 3, 4, 6, 10, 22]

let arr2 = arr.sort((a, b) =>b-a)  
console.log(arr2)  // [22, 10, 6, 4, 3, 2, 1]
9.join()

将数组转换成字符串,以参数来拼接

var arr = [8,5,7,111,2];
var str = arr.join("----");
console.log(str);  //8----5----7----111----2
10.concat()

将元素添加到数组中,(添加的是元素)返回一个新数组,原数组不变

let arr = [1,2,3,4,5]
console.log(arr.concat([1,2]))  // [1,2,3,4,5,1,2]
console.log(arr)   // [1,2,3,4,5]

ES5新增数组方法

1.indexOf(n)

返回n在在数组中的索引,无就返回-1

var arr = [1,1,1,1,2,1,3,4];
console.log(arr.indexOf(2),arr.indexOf(22));  // 4 ,-1
2.forEach()

遍历数组中的每个元素,可得到每一项的值和索引值

var arr = [2,1,3];
arr.forEach(function(item,index){
	console.log(item,index);		// 2 0
									// 1 1
									// 3 2
})
3.map()

通过指定函数处理数组每个元素,并返回处理后的数组,返回一个新数组

var arr = [2,1,3];
var a = arr.map(function(item,index){
 				return item * 3;
 		})
 console.log(a);  // [6,3,9]
4.filter()

检测数组元素,过滤出满足条件的所有数组元素,返回新数组

var arr = [2,1,3];
var a = arr.filter(function(item){
 				return item > 1;
 		})
console.log(a);  //[2,3]
5.some()

只要有一个数组元素满足条件就返回true

var arr = [2,1,3];
var a = arr.some(function(item){
 				return item > 2;
 		})
 console.log(a); // true
6.every()

每一个数组元素都满足条件就返回true

var arr = [2,1,3];
var a = arr.every(function(item){
 				return item > 0;
 		})
 console.log(a); //true
7.reduce()

累积求和 对数组做聚合操作

var arr = [2,1,3];
var sum = arr.reduce(function(a,b){
 				return a+b;
 		})
 console.log(sum);  //6
ps: arr.forEach()和arr.map()的区别
  1. arr.forEach()是和for循环一样,是代替for。arr.map()是修改数组其中的数据,并返回新的数据。
  2. arr.forEach() 没有return arr.map() 有return