数组的高阶方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数组的高阶方法相关的知识,希望对你有一定的参考价值。

参考技术A 输出结果在文章最下方

定义数组:let arr = [11,22,33,44,55,66,77,88,99,1000,10000]

forEach()

用于循环遍历整个数组,该方法的参数是一个回调函数,可以传两个参数,第二个参数可以省略

示例:arr.forEach((item,index)=>console.log(item+'-'+index))

filter()

用于过滤数组中的元素,返回过滤后的结果

示例:let arr2 = arr.filter(item=>item%2!==0)

          console.log(arr2);

find()

用于获取数组中满足规则的第一个元素

示例: let num1 = arr.find(item=>item%2===0)

           console.log(num1);

findIndex()

用于获取数组中满足规则的第一个元素的下标

示例:let index1 = arr.findIndex(item=>item%2===0)

          console.log(index1);

some()

用于表示数组中是否有满足指定规则的元素,有返回true,一个都没有返回false

示例:let isok1 = arr.some(item=>item%3===0)

          console.log(isok1);

every()

用于表示数组中是否所有元素都满足指定的规则,有返回true,一个都没有返回false

示例:let isok2 = arr.every(item=>item>10)

           console.log(isok2);

         let isok3 = arr.every(item=>item>100)

         console.log(isok3);

map()

用于将原始数组中的数据根据指定的规则返回新的数组

示例:let arr3 = arr.map(item=>item*2)

          console.log(arr3);

          let arr4 = arr.map(item=>item%4)

          console.log(arr4);

sort()

用于将数组排序

不传参数就是根据数组元素首位编码来排序

回调函数需要传两个参数,返回 参数1-参数2 是升序,返回 参数2-参数1 是降序

示例:let arr6 = [33,22,55,7,46]

        arr6.sort((a,b)=>a-b)

        console.log(arr6);

        arr6.sort((a,b)=>b-a)

        console.log(arr6);

reduce()

用于统计数组中元素的值(从左到右)

参数a的值第一次是数组第一个元素,后面a的值是上次a+b的值

 可以给a设置一个初始值,b就是数组第一位开始

示例: let sum = arr6.reduce((a,b)=>a+b,0)

        console.log(sum);

reduceRight()

用于统计数组中元素的值(从右到左),算法和reduce()相反

示例:let sum1 = arr6.reduceRight((a,b)=>a+b)

        console.log(sum1);

练习: 将arr数组中,所有能被3整除的数减去10后返回

let arr5 = arr.filter(r=>r%3===0).map(r=>r-10)

        console.log(arr5);

全部输出结果如图:

以上是关于数组的高阶方法的主要内容,如果未能解决你的问题,请参考以下文章

9种JavaScript数组去重的高阶方法

js数组高阶方法reduce经典用法代码分享

js数组高阶方法reduce经典用法代码分享

JS高阶函数

高阶函数汇总(mapforEach)

JavaScript 中的高阶函数