js 数组常用方法

2018-05-10  本文已影响0人  allen_tian

只有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
},[])
上一篇 下一篇

猜你喜欢

热点阅读