数组的高阶函数(数组的常用方法)

目录

1.find

2.findIndex

3.keys/values

 4.entries

 5.includes(常用)

 6.sort

 7.forEach

8.filter

 9.map

10.reduce


高阶函数:如果一个函数的参数或返回值是函数,则这个函数被称为高阶函数

回调函数:把一个函数当做一个参数传递到另一个函数当中,当需要用这个函数时,再回调运行这个函数

                回调函数是一个可执行的代码片段,它作为一个参数传给其他的代码,起作用是在需要的时候方便调用这段(回调函数)代码

1.find

        数组名.find:找出第一个符合条件的数组成员,它的第一个参数是回调函数

        let arr = Array.of(1,2,3,4,5,6,'hello',[1,2])
        // 找出数组内第一个大于3的元素,并返回该元素,
        // 括号内是箭头函数的简写形式
        let num = arr.find((val) => val > 3)
        // 未简写
        let num2 = arr.find((val)=>{
            return val > 3
        })

2.findIndex

        找出第一个符合条件的数组成员的索引值,它的第一个参数是回调函数

let arr = Array.of(1,2,3,4,5,6,'hello',[1,2])

let num = arr.findIndex((val) => val > 3)

3.keys/values

keys:遍历数组的元素的索引(下标)        values:遍历数组的值

// keys()
let arr = [1,'hello',true,[1,2,3]]
for(let val of arr.keys()){
      console.log(val);// 结果:0 1 2 3
   }

for(let key of arr.values()){
     console.log(key); // 结果:1 'hello' true [1,2,3]
   }

 4.entries

遍历数组的的键值对

let arr = [1,'hello',true,[1,2,3]]
for(let val of arr.entries()){
       console.log(val);
    }

 结果

 5.includes(常用)

检查数组是否包含某个指定的值,返回一个布尔值(包含为true,反之false)

let arr = [1,'hello',true,[1,2,3]]
console.log(arr.includes(1));

 6.sort

1.sort用来对数组进行排序(会改变原来数组)

        1.1:sort默认将数组升序排列

                1.1.1:注意:sort默认会按照Unicode编码进行排序,所以如果直接通过sort对数字进行排序 可能会得到一个不正确的结果

  2.参数

        传递回调函数指定排序规则

        (a,b) =>  a-b  升序排列

        (a,b) =>  b-a  降序排列    

let arr = [2,3,6,9,0,8,5,4,1]
arr.sort((a,b)=> b-a)
console.log(arr);

 7.forEach

1.用于遍历数组,会传递一个回调函数作为参数,数组中有几个元素,回调函数则会被调用几次

2.回调函数中有三个参数

        element        当前元素

        index        当前元素的索引

        array        被遍历的数组

let arr = ['孙悟空','猪八戒','沙和尚']
arr.forEach((element,index,array)=>{
     return element
   })

8.filter

将数组中符合条件的元素保存到一个新的数组中(过滤数组中的元素)

需要一个回调函数作为参数,根据返回值决定是否将新元素添加到新数组中

let arr = ['孙悟空','猪八戒','沙和尚']
let result = arr.filter((ele) => ele === '孙悟空')
console.log(result);

 9.map

根据当前数组生成一个新的数组

需要一个回调函数作为参数,回调函数的返回值会成为新数组中的元素

let person = [
            {name:'张三',age:18},
            {name:'李四',age:22},
            {name:'王五',age:15},
        ]
let result = person.map((v)=>v.name)
console.log(result);

10.reduce

将数组中的所有严肃整合为一个值

参数:

        1.回调函数:通过回调函数来指定合并规则

        2.可选参数:初识值

let arr = [2,3,6,9,0,8,5,4,1]
let result = arr.reduce((a,b) => a+b,10)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值