JavaScript中减少()方法的使用是什么

  

JavaScript中减少()方法的使用是什么?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

JavaScript的特点

1. JavaScript主要用来向HTML页面添加交互行为。   2. javascript可以直接嵌入到HTML页面,但写成单独的js文件有利于结构和行为的分离。   3. javascript具有跨平台特性,在绝大多数浏览器的支持下,可以在多种平台下运行。

<>强基本概念

减少()方法接收一个函数作为累加器(蓄电池),数组中的每个值(从左到右)开始缩减,最终为一个值。

减少为数组中的每一个元素依次执行回调函数,不包括数组中被删除或从未被赋值的元素,接受四个参数:初始值(或者上一次回调函数的返回值),当前元素值,当前索引,调用减少的数组。

<>强语法:

arr.reduce(回调,[initialValue]) <李>

回调(执行数组中每个值的函数,包含四个参数)

<李>

previousValue(上一次调用回调返回的值,或者是提供的初始值(initialValue))

<李>

currentValue(数组中当前被处理的元素)

<李>

指数(当前元素在数组中的索引)

<李>

数组(调用减少的数组)

<李>

initialValue(作为第一次调用回调的第一个参数。)

<强>简单应用

例1:

var  items =, (10, 120,, 1000);//,our  reducer 函数   var  reducer =, function 添加(sumSoFar,,项目),{,return  sumSoFar  +,物品,,};//,do 从而;工作   var  total =, items.reduce(减速机,,0);   console.log(总);,//,1130

可以看的出,减少函数根据初始值0,不断的进行叠加,完成最简单的总和的实现。

减少函数的返回结果类型和传入的初始值相同,上个实例中初始值为数字类型,同理,初始值也可为对象类型。

例2:

var  items =, (10, 120,, 1000);//,our  reducer 函数   var  reducer =, function 添加(sumSoFar,,项目),{=,,sumSoFar.sum  sumSoFar.sum  +,项目;   ,return  sumSoFar;   };//,do 从而;工作   var  total =, items.reduce(减速机,,{金额:0});   console.log(总);,//,{:1130}

<强>进阶应用

使用减少方法可以完成多维度的数据叠加。如上例中的初始值{金额:0},这仅仅是一个维度的操作,如果涉及到了多个属性的叠加,如{金额:0,totalInEuros: 0, totalInYen: 0},则需要相应的逻辑进行处理。

在下面的方法中,采用分而治之的方法,即将减少函数第一个参数调封装为一个数组,由数组中的每一个函数单独进行叠加并完成减少操作。所有的一切通过一个经理函数来管理流程和传递初始参数。

var  manageReducers =,函数(还原剂),{   ,return 函数(,,),{   return 才能种(还原剂).reduce (   ,,函数(nextState,键),{   ,,,还原剂(例子)(国家,项目);   ,,,return 状态;   ,,},   ,,{}   ,,);   ,}   };

上面就是经理函数的实现,它需要还原剂对象作为参数,并返回一个callback类型的函数,作为减少的第一个参数。在该函数内部,则执行多维的叠加工作(对象。键()).

通过这种分治的思想,可以完成目标对象多个属性的同时叠加,完整代码如下:

var  reducers =, {,   ,totalInEuros :函数(,,),{   return 才能;state.euros  +=, item.price  *, 0.897424392;   },   ,totalInYen :函数(,,),{   return 才能;state.yens  +=, item.price  *, 113.852;   ,}   };   var  manageReducers =,函数(还原剂),{   ,return 函数(,,),{   return 才能种(还原剂).reduce (   ,,函数(nextState,键),{   ,,,还原剂(例子)(国家,项目);   ,,,return 状态;   ,,},   ,,{}   ,,);   ,}   };   var  bigTotalPriceReducer =, manageReducers(还原剂);   var  initialState =,{欧元:0,,日圆:,0};   var  items =,[{10}价格:,,,{价格:120},{价格:1000});   var  totals =, items.reduce (initialState bigTotalPriceReducer也);   console.log(总数);

在来一个例子:

某同学的期末成绩如下表示

var  result =, (   {才能   ,,,主题:,& # 39;数学# 39;   ,,,分数:88   ,,},   {才能   ,,,主题:,& # 39;中国# 39;   ,,,分数:95   ,,},   {才能   ,,,主题:,& # 39;英语# 39;   ,,,分数:80   ,,}   ];

JavaScript中减少()方法的使用是什么