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中减少()方法的使用是什么