map:
map应用场景 映射得到新数组
遍历每一个元素 并对每一个元素做响应的处理,返回一个新数组
回调函数
回调函数执行次数 == 数组长度 有几个元素就执行几次
map函数返回的新数组长度 == 原数组长度
回调函数一定要return 返回的是当前遍历的元素值
应用:
let arr = [20,10,30,40,50,70,5];
// 需求 数组每个元素+1
let arr1 = arr.map((value,index) => {
return value + 1;
})
console.log(arr1);//[21, 11, 31, 41, 51, 71, 6]
fifter
过滤数组 筛选满足条件
应用:
let arr6 = arr5.filter((value)=>{
return value%2 == 0
})
console.log(arr6);
foreach
用于遍历数组 for循环另一种写法
语法: 数组.foreach(function(value,index,arr){//算法})
必须提供参数 value: 每次遍历到的数组元素 index: 每次遍历到的数组的下标 arr:数组
应用:
let arr = [20,1,2,50,31,94,101,43]//342
// 对数组进行累加
let sum = 0
arr.forEach((value) => {
sum += value
})
console.log(sum);
注意 回调函数执行次数 == 数组长度(数组中有多少元素,回调函数就会执行几次)
foreach没有返回值 回调函数不需要return filter和foreach方法参数完全相同
some
作用 是否存在满足条件的元素 . 回调函数执行次数 != 数组长度
返回布尔类型值用于结束遍历
return true ;遍历结束 且some函数返回值为true
return false ;遍历继续 且some函数返回值为 true
应用:
let arr1 = [1,2,3,4,5,6,7,-1]
let arr2 = arr1.some((item,index) => {
return item > 0
})
console.log(arr1);//[1,2,3,4,5,6,7,-1]
console.log(arr2);//true
every
作用 判断所有元素是否满足条件 返回值是布尔类型
应用:
let arr3 = [1,2,3,4,5,6,7,9,-1]
let arr4 = arr3.every((item) => {
return item > 0
})
console.log(arr4);//false
findIndex
应用场景 适合数组中元素为对象 类型
获取符合条件的第一个元素所在的下标(位置)
应用:
let ar = [
{name:'张三',age:15},
{name:'张四',age:14},
{name:'张五',age:13},
{name:'张六',age:12},
{name:'张七',age:11}
]
let arz = ar.findIndex((item,index) => {
return item.age < 15
})
console.log(arz);
reduce
作用 遍历数组元素 为每个数组执行一次回调函数
语法: arr.reduce((sum,value) => {
return sum + value
}) 返回值 sum 应用场景 : 求和、 平均数、 最大值 、最小值
let ara = [20,10,30,5,6,7,9]
// sum:初始值,默认为数组第一个元素 value 数组每一个元素, 默认为数组第二个元素
let rs = ara.reduce((sum,value) => {
// 必须要return 相当于粑本次计算的结果赋值给下一次的sum: sum= sum + value
return sum + value
},0)
console.log(rs);
console.log(rs.reduce((sum,value) => sum + value));
// 最大值
let rs1 = arr1.reduce((sum,value) => Math.max(sum,value))
console.log(rs1);