1.map()方法
1.1应用场景:利用某种规则映射一个新的数组(遍历数组中每一个元素,并对每一个元素做对应的处理,返回一个新的数组)
例如:将数组中的每一个元素+1
let arr = [10, 20, 30, 40, 50]
let newArr = arr.map((item, index) => {
return item + 1
})
console.log(newArr)
1.2注意点:
(1).回调函数的执行次数等于数组长度
(2).map函数返回的新数组长度等于原数组长度
(3).回调函数中一定要return,返回的是当前遍历的元素值,如果不return,新数组的每一个元素都是undefined
2.forEach()方法
2.1应用场景:用于遍历数组,相当于for循环的另一种写法
let arr = [10, 20, 30, 40, 50]
arr.forEach((item, index) => {
console.log(`下标为${index}的元素是${item}`)
})
2.2注意点:
(1).回调函数的执行次数等于数组长度
(2).forEach函数没有返回值
(3).回调函数不需要return,就算手动return,也不会结束循环
3.filter()方法
3.1应用场景:用于筛选数组中满足条件的元素,返回筛选后的新数组
例如:找出数组中的偶数
let arr = [1, 2, 3, 4, 5, 6, 7, 8]
let newArr = arr.filter((item, index) => {
return item % 2 == 0
})
console.log(newArr)
3.2注意点:
(1).回调函数的执行次数等于数组长度
(2).filter函数返回的新数组长度不等于原数组长度
(3).回调函数一定要return一个布尔值,如果return的值为true,当前遍历的元素就会添加到新数组中,如果return的值为false,则不会添加到新数组中
4.some()方法
4.1应用场景:用于判断数组中是否存在满足条件的元素
例如:判断数组中是否存在大于100的数(存在,返回值为true,不存在,返回值为false)
let arr = [10, 50, 150, 200, 60, 30]
let bol = arr.some((item, index) => {
return item > 100
})
console.log(bol)
4.2注意点:
(1).回调函数的执行次数不等于数组长度
(2).some函数的返回值是一个布尔值
(3).回调函数返回布尔类型值用于结束遍历,如果return的值为true,则遍历结束,且some函数的返回值为false,如果return的值为false,则继续遍历,且some函数的返回值为false
5.every()方法
5.1应用场景:用于判断数组中是否所有元素都满足条件(开关思想),与some()方法功能相似,可以对比理解
例如:判断数组中是否所有元素都大于100(都大于100,返回值为true,只要有一个元素小于100,则返回值为false)
let arr = [10, 50, 150, 200, 60, 30]
let bol = arr.every((item, index) => {
return item > 100
})
console.log(bol)
5.2注意点:
(1).回调函数的执行次数不等于数组长度
(2).every函数的返回值是一个布尔值
(3).回调函数返回布尔类型值用于结束遍历,如果return的值为true,则遍历继续,且every函数的返回值为true,如果return的值为false,则继续结束,且every函数的返回值为false
6.findIndex()方法
6.1应用场景:适用于数组中元素为对象类型,比传统的for循环要高效
6.2作用:获取符合条件的第一个元素位置(下标)
let arr = [
{ name: '张三', age: 20 },
{ name: '李四', age: 30 },
{ name: '王五', age: 25 },
{ name: '赵六', age: 33 },
{ name: '小七', age: 10 },
];
let i=arr.findIndex((item,index)=>{
return item.age>30
})
console.log(i)
6.2注意点:
(1).如果return的值为true,则遍历结束,findIndex方法返回值为当前的index值;如果return的值为false,则遍历继续,如果数组全部遍历完还是没有返回true,则findIndex方法返回值为-1
7.reduce()方法
7.1应用场景:数组求和/平均值/最大值/最小值
7.2作用:遍历数组元素,为每一个元素执行一次回调函数
let arr = [10, 20, 30, 40]
let getSum = arr.reduce((sum, item) => {
return sum + item
})
console.log(getSum)
7.2注意点:
(1).最好给一个初始值,避免空数组报错
let arr = [10, 20, 30, 40]
let getSum = arr.reduce((sum, item) => {
return sum + item
},0)
console.log(getSum)
let max = arr.reduce((sum, item) => {
return Math.max(sum, item)
}, 0)
console.log(max)
这里特别注意的是,每一轮的sum值是上一轮的返回值
8.总结
生活不止眼前的苟且,还有诗和远方
愿诸君共勉之