javaScript的高级函数
Posted coldwinds
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javaScript的高级函数相关的知识,希望对你有一定的参考价值。
1.map()
map()方法返回一个新数组,新数组是原始数组调用函数之后处理后的值。
map()方法按照原始数组元素顺序依次处理元素。
map不会对空数组进行检测。
map不会改变原始数组 。
参数:
array.map(function(currentValue,index,arr){}),分别为当前元素值(必选),索引,原数组
实例:
1 const arr=[1,2,3,4,5]; 2 let arrs=arr.map((cur)=>{ 3 return cur+1;//每个元素加1 4 }) 5 console.log(arrs)//[2,3,4,5,6]
2.reduce()
reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。
reduce() 对于空数组是不会执行回调函数的。
参数:
array.reduce(function(total, currentValue, currentIndex, arr), initialValue),分别为函数的初始值,当前元素值,索引,原数组,传递给函数的初始值。
实例:
1 const arr=[1,2,3,4,5,4,3,2,1]; 2 let reduceArr=arr.reduce((total,cur)=>{ 3 return total+cur;//累加 4 }) 5 let reduceArr2=arr.reduce((total,cur)=>{ 6 if(!total.includes(cur)){ 7 return total.concat(cur);//如果total里没有cur,就把cur合并到total里边。 8 }else{ 9 return total; 10 } 11 },[])//[]为total的初始值 12 console.log(reduceArr);//25
13 console.log(reduceArr2);//[1,2,3,4,5]
3.filter()
filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。
filter() 不会对空数组进行检测。
filter() 不会改变原始数组。
参数:
array.filter(function(currentValue,index,arr), thisValue),分别是当前元素,索引,原数组,对象作为该执行回调时使用,传递给函数,用作 "this" 的值。
实例:
1 const arr=[1,2,3,4,5,‘a‘,‘b‘,‘c‘]; 2 let filterArr=arr.filter((value)=>{ 3 return typeof(value)===‘number‘; 4 }) 5 console.log(filterArr);//[1,2,3,4,5]
4.sort()
sort() 方法用于对数组的元素进行排序。排序顺序可以是字母或数字,并按升序或降序。默认排序顺序为按字母升序。
1 const arr=[1,6,5,‘2‘,‘3‘,‘4‘]; 2 let sortArr=arr.map((item)=>{ 3 return item-0;//将arr里的str转换为Number 4 }).sort((a,b)=>{ 5 return a-b; 6 }) 7 console.log(sortArr);//[1,2,3,4,5,6]
以上是关于javaScript的高级函数的主要内容,如果未能解决你的问题,请参考以下文章