数组有很多遍历的方法,下面我们来做一波总结
1.forEach
forEach()方法用于对每一个元素执行回调函数的操作,无返回值。
array.forEach(function(currentValue,index,arr){},thisValue)
第一个参数function是一个回调参数。
currentValue:当前遍历到的元素。
index:当前遍历到的下标。
arr:当前数组。
第二个参数thisValue是该函数的this。
为了方便,所有回调函数的currentValue我都用item来代替
let arr = [1,2,3]
arr.forEach((item,index,arr)=>{
arr[index] = item + 1
})
console.log(arr)//[2,3,4]
注意:如果想修改原数组,必须使用arr和index,单纯的修改item是无效的。
2.map
map()方法和forEach十分相像,这两的参数是一样的,区别是map会返回一个新的对数组元素操作完成的例子。
let arr = [1,2,3]
const newArr = arr.map(item=>item+1)
console.log(arr)//[1,2,3]
console.log(newArr)//[2,3,4]
所以想修改原数组的话用forEach好一点,如果想要一个新的数组那就使用map好一点。
3.every
用于检测数组所有元素是否全都符合条件,参数和上面一样,如果有一个item条件不满足,则整个函数都返回false,反之返回true
下面直接看例子:
let arr = [1,2,3]
const result = arr.every(item=>item > 0)
console.log(arr)//[1,2,3]
console.log(result)//true
反例:
let arr = [1,2,3]
const result = arr.every(item=>item > 3)
console.log(arr)//[1,2,3]
console.log(result)//false
4.some
和every的作用相反,every是必须全都满足才会返回true,而some只需要一个满足就会返回true,反之返回false
下面直接看例子:
let arr = [1,2,3]
const result = arr.some(item=>item > 2)
console.log(arr)//[1,2,3]
console.log(result)//true
反例:
let arr = [1,2,3]
const result = arr.some(item=>item > 3)
console.log(arr)//[1,2,3]
console.log(result)//false
5.find
用于查找数组里是否包含某个满足条件元素的,如果找到则返回对应的元素
下面看例子:
let arr = [1,2,3]
const result = arr.find(item=>item > 2)
console.log(arr)//[1,2,3]
console.log(result)//3
若不满足则返回undefined
let arr = [1,2,3]
const result = arr.find(item=>item > 3)
console.log(arr)//[1,2,3]
console.log(result)//undefined
下次再补上其他的方法