Javascript 数组上的Reduce方法–;它是如何工作的?
我发现了这个AngularJS代码,我不明白sum函数是如何工作的:Javascript 数组上的Reduce方法–;它是如何工作的?,javascript,arrays,angularjs,Javascript,Arrays,Angularjs,我发现了这个AngularJS代码,我不明白sum函数是如何工作的: reduce的作用是什么 如何设置或保存参数toral 为什么末尾有一个“0” JavaScript HTML {{item.name} {{item.price | currency}} {{cart.getItems().length}}Artikel {{cart.sum()| currency}} 回答:1--> 将Array.prototype.reduce()应用于一个数组,随后将遍历每个值,直到它减少到一个值
reduce
的作用是什么
{{item.name}
{{item.price | currency}}
{{cart.getItems().length}}Artikel
{{cart.sum()| currency}}
回答:1-->
将Array.prototype.reduce()应用于一个数组,随后将遍历每个值,直到它减少到一个值为止
语法:arr.reduce(回调,[initialValue])
回答:2-->
Total是从上一次迭代返回的值,第二个参数引用迭代中的当前项[value]
回答:3-->
0表示初始值,因为我们要进行求和,所以需要从0初始化该值
减少(ES5的一部分)
reduce()方法对累加器应用函数,数组的每个值(从左到右)都必须将其减少为单个值
reduce对数组中存在的每个元素执行一次回调函数,不包括数组中的孔,并接收四个参数:初始值(或来自上一次回调调用的值)、当前元素的值、当前索引和正在进行迭代的数组
总计为参数和0
Total是保存上一次计算值的累加器,0
是reduce
方法的初始值和第二个参数,语法如下:
arr.reduce(回调,[initialValue])代码>
它是如何工作的?
items.reduce
返回值–计算每个项目的总和,sum:return items.reduce
返回计算值
文档:
.factory('Cart', function() {
var items = [];
return {
sum: function() {
return items.reduce(function(total, article) {
return total + article.price;
}, 0);
}
});
<table ng-show="cart.getItems().length" class="table">
<tr ng-repeat="item in cart.getItems() track by $index" class="cart-item">
<td>{{item.name}}</td>
<td>{{item.price | currency}}</td>
</tr>
<tr>
<td>{{cart.getItems().length}} Artikel</td>
<td>{{cart.sum() | currency}}</td>
</tr>
</table>