JS高级数组迭代

目录

1.map()方法

3.filter()方法

4.some()方法

 5.every()方法

5.1应用场景:

7.reduce()方法

8.总结


JS高级数组迭代总结:
map利用某种规则,映射一个新数组
filter筛选数组中满足条件的元素,映射一个筛选后的新数组
some判断数组中是否存在满足条件的元素,返回布尔型
every判断数组中是否所有元素都满足条件,返回布尔型
reduce数组进行计算,(第一个值,从第二个值进行遍历),返回一个新值

1.map()方法

1.1应用场景:利用某种规则映射一个新的数组(遍历数组中每一个元素,并对每一个元素做对应的处理,返回一个新的数组)
例如:将数组中的每一个元素+1


 let arr = [10, 20, 30, 40, 50]

 //item数组每一项的值,index数组的下标

 let newArr = arr.map((item, index) => {
      return item + 1
    })
 console.log(newArr)//[11, 21, 31, 41, 51]

1.2注意点:
(1).回调函数的执行次数等于数组长度
(2).map函数返回的新数组长度等于原数组长度
(3).回调函数中一定要return,返回的是当前遍历的元素值,如果不return,新数组的每一个元素都是undefined

3.filter()方法

3.1应用场景:用于筛选数组中满足条件的元素,返回筛选后的新数组
例如:找出数组中的偶数


 let arr = [1, 2, 3, 4, 5, 6, 7, 8]

 let newArr = arr.filter((item, index) => {

     //return一个布尔值

      return item % 2 == 0

    })

    console.log(newArr)//[2,4,6,8]
 

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)//true
 

 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)//false

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

})

//打印的i为符合条件的第一个元素下标

console.log(i)//3

6.2注意点:
(1).如果return的值为true,则遍历结束,findIndex方法返回值为当前的index值;如果return的值为false,则遍历继续,如果数组全部遍历完还是没有返回true,则findIndex方法返回值为-1

7.reduce()方法

7.1应用场景:数组求和/平均值/最大值/最小值
7.2作用:遍历数组元素,为每一个元素执行一次回调函数 

//数组求和

let arr = [10, 20, 30, 40]

//sum:初始值,默认为数组的第一个元素

//item:数组的每一个元素,默认为数组的第二个元素

let getSum = arr.reduce((sum, item) => {

 //这里必须要return,相当于把本次计算得结果赋值给下一次得sum : sum = sum + item;

      return sum + item

    })

    console.log(getSum)//100

 7.2注意点:
(1).最好给一个初始值,避免空数组报错

//数组求和

let arr = [10, 20, 30, 40]

//加了初始值0之后,此时sum开始默认为0,item则默认为数组的第一个元素

let getSum = arr.reduce((sum, item) => {

 //这里必须要return,相当于把本次计算得结果赋值给下一次得sum : sum = sum + item;

      return sum + item

    },0)

    console.log(getSum)//100

//数组求最大值

 let max = arr.reduce((sum, item) => {

      return Math.max(sum, item)

    }, 0)

    console.log(max)//40

8.总结

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值