只有sort()方法改变了原数组,其他方法都没有改变原数组
1、forEach:接收一个函数做为参数,对数组的每个元素执行一次接收的函数
还接收一个可选参数,表示回调函数的this的值
forEach接收的做为参数的函数,接收三个参数,一次代表调用forEach函数的数组的值,下标,数组本身
var arr = [1,2,3,4]
arr.forEach(function(value,key,arr){
console.log(value,key,arr)
})
for只能遍历数组的下标为数字的项,forEach可以遍历所有的项,forEach没有返回值
2、sort:排序方法
var arr = [1,2,3,4]
arr.sort()//不传参数,默认从小到大排序
arr.sort(function(x,y){ return x-y})
3、join:连接数组的每个元素
var arr = [1,2,3,4]
arr.join()//不传参数默认使用,连接,等同于 arr+'' ,其实是arr调用了toString()
4、concat: 连接数组
var arr = [1,2,3,4]
var b = ['a','b','c']
arr.concat(b)
5、map:与forEach类似,但是不同的是map会返回一个新数组,forEach没有返回值
6、filter:过滤数组,保留结果为true的元素组成一个新的数组返回
var arr = [1,2,3,4]
arr.filter(function(x){
return x % 2 === 0
})
7、reduce:对数组中的每个数应用一个函数,可以实现map和filter
var arr = [1,2,3,4]
arr.reduce(function(sum,value){
return sum + value
},0)//0为sum的初始值,之后每一次sum+value的值会赋给sum
reduce实现map
var arr = [1,2,3,4]
arr.reduce(function(array,value){
array.push(value * 2)
return array
},[])
reduce实现filter
var arr = [1,2,3,4]
arr.reduce(function(array,value){
if(value % 2 === 0){
array.push(value)
}
return array
},[])
网友评论