数组的高阶方法
输出结果在文章最下方
定义数组: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);
全部输出结果如图: