数组的七种迭代方法

介绍
  • 数组的七种迭代方法分别是:map,filter,forEach,every,some,findIndex, reduce
1. map()方法
  • 作用: 映射,将数组的每一项元素进行处理,并返回一个新的数组
  • 应用示例
// 将数组的每一项数据加一
let arr = [1, 2, 3, 4]
let dealArr = arr.map((item, index) => item + 1)
console.log(dealArr) //[2, 3, 4, 5]
2. filter()方法
  • 作用:过滤,返回符合条件的元素数组
  • 应用示例
// 返回年龄大于23的对象
let filterArr = [
    {name: 'lisi', age: 22},
    {name: 'zhangsan', age: 23},
    {name: 'wangwu', age: 24},
    {name: 'wanger', age: 25},
]
let dealFilterArr = filterArr.filter((item, index) => item.age > 23)
console.log(dealFilterArr) //[{name: 'wangwu', age: 24},{name: 'wanger', age: 25}]
3. forEach()方法
  • 作用:循环数组,没有返回值
  • 应用示例
// 循环数组
let arr = [1, 2, 3, 4]
arr.forEach((item, index) => console.log(item))
4. every() 方法
  • 作用:判断数组中的元素是否所有元素符合条件,只有全部符合条件才会返回true,否则返回false
  • 应用示例
let arr2 = [
    {name: 'lisi', age: 22},
    {name: 'zhangsan', age: 23},
    {name: 'wangwu', age: 24},
    {name: 'wanger', age: 25},
]
// 判断数组中的人物对象年龄是否都满18岁
let isEvery = arr2.every((item, index) => item.age > 18) //true
// 判断数组中的人物对象年龄是否都满24岁
let isEvery = arr2.every((item, index) => item.age > 24) //false
5. some()方法
  • 作用:判断数组中元素是否存在符合条件的元素,只要存在符合条件的元素就返回true,否则返回false
  • 应用示例
let arr2 = [
    {name: 'lisi', age: 22},
    {name: 'zhangsan', age: 23},
    {name: 'wangwu', age: 24},
    {name: 'wanger', age: 25},
]
// 判断数组中是否存在年龄为23的数据
let isSome = arr2.some((item, index) => item.age == 23) //true
// 判断数组中是否存在年龄为26的数据
let isSome = arr2.some((item, index) => item.age == 26) //false
6. findIndex()方法
  • 作用:查找第一个符合条件的元素的下标,找不到返回-1
  • 应用示例
let arr2 = [
    {name: 'lisi', age: 22},
    {name: 'zhangsan', age: 23},
    {name: 'wangwu', age: 23},
    {name: 'wanger', age: 25},
]
let index = arr2.findIndex((item, index) => item.age == 23) // 1
let index = arr2.findIndex((item, index) => item.age == 2) // -1
7. reduce()方法
  • 作用: 遍历数组元素,每一个元素都要执行一次回调函数,接收两个参数:
    • 第一个参数:(pre, cur, index, arr) => {}
    • 第二个参数: pre初始值(第二个参数默认取数组第一个参数)
  • 应用示例
    • 求和
    let arr = [1, 2, 3, 4]
    let addNum = arr.reduce((pre, cur, index, arr)=>  pre + cur, 0) // 10
    
    • 平均值
    let arr = [1, 2, 3, 4]
    let addNum = arr.reduce((pre, cur, index, arr)=>  pre + cur, 0) 
    let averageNum = addNum/arr.length // 2.5 
    
    • 最大值
    let arr3 = [12, 35, 64, 46, 23, 1, 67]
    let isreduce = arr3.reduce((pre, cur, index, arr) => pre  > cur ? pre : cur) // 67
    
    • 最小值
    let arr3 = [12, 35, 64, 46, 23, 1, 67]
    let isreduce = arr3.reduce((pre, cur, index, arr) => pre  < cur ? pre : cur) // 1
    
    • 最相近的值
    //Math.abs---取绝对值
    const nearNum = (arr, num) => arr.reduce((pre, cur, index, arr) => (Math.abs(cur - num) < Math.abs(pre - num) ? cur : pre))
    let maxNum = nearNum([12, 35, 64, 46, 23, 1, 67], 33) // 35
    
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值