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的高级函数的主要内容,如果未能解决你的问题,请参考以下文章

常用Javascript代码片段集锦

如何将此 JavaScript 代码片段翻译成 Parenscript?

10个JavaScript代码片段,使你更加容易前端开发。

10个JavaScript代码片段,使你更加容易前端开发。

JavaScript高级之函数

JavaScript系列:高级函数篇