1.map
map方法执行调用方法后返回一个新的数组,新数组中的每一项是调用方法处理后的新值,但并不会改变原数组,并且新数组的长度与原数组相等。
let arr = [1, 2, 3]
let newArr = arr.map(item => return { item * 2 })
newArr = [2, 4, 6]
2.filter
filter方法用于过滤数组。依次遍历数组中的每一项,返回满足过滤条件的数组。判断是否满足过滤条件是通过函数内部的return实现的,return true表示满足,返回给新数组,反之则不返回。
let arr = [3, 13, 5, 20]
let newArr = arr.filter(item => item > 10)
newArr = [13, 20]
3.find
find方法返回数组中第一个满足条件的值,即数组中的对象,之后的值不再遍历,未找到返回undefined。注:find方法返回的是对象!是对象!是对象!
let arr = [{id: 1, name: 'xiaoming', age: 21}, {id: 2, name: 'xiaohong', age: 19}, {id: 3, name: 'xiaoqiang', age: 22}]
let obj = arr.find(item => item.age > 20)
obj= {id: 1, name: 'xiaoming', age: 21}
4.findIndex
findIndex方法返回数组中第一个满足条件的元素的下标,之后的值不再遍历,未找到返回 -1。
let arr = [{id: 1, name: 'xiaoming', age: 21}, {id: 2, name: 'xiaohong', age: 19},{id: 3, name: 'xiaoqiang', age: 22}]
let index = arr.findIndex(item => item.age > 20)
index = 0
5.forEach
forEach方法用于遍历数组,没有返回值。
let arr = [{id: 1, name: 'xiaoming', age: 21}, {id: 2, name: 'xiaohong', age: 19},{id: 3, name: 'xiaoqiang', age: 22}]
arr.forEach(item => { console.log(item) })
打印结果:[{id: 1, name: 'xiaoming', age: 21}, {id: 2, name: 'xiaohong', age: 19},{id: 3, name: 'xiaoqiang', age: 22}]
6.some
some方法只要遍历的数组中有一个满足条件的值就返回true,之后的值不再遍历,未找到返回false。
let arr = [{id: 1, name: 'xiaoming', age: 21}, {id: 2, name: 'xiaohong', age: 19},{id: 3, name: 'xiaoqiang', age: 22}]
let value = arr.some(item => item.age < 20)
value = true
7.every
every方法只有当遍历的数组中所有的值都满足条件才返回true,有一个值不满足就返回false,之后的值不再遍历。
let arr = [{id: 1, name: 'xiaoming', age: 21}, {id: 2, name: 'xiaohong', age: 19},{id: 3, name: 'xiaoqiang', age: 22}]
let value = arr.every(item => item.age > 20)
value = false
以上所有方法的执行函数都接受3个值:①currentValue:必需,表示当前元素;②index:可选,表示当前元素的索引值;③arr:可选,表示当前元素所属的数组对象。Last but not least,发现有不恰当之处,请留言指正!谢谢!