数组的高阶方法
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);
全部输出结果如图:
以上是关于数组的高阶方法的主要内容,如果未能解决你的问题,请参考以下文章