Javascript 数组上的Reduce方法–;它是如何工作的?

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()应用于一个数组,随后将遍历每个值,直到它减少到一个值

我发现了这个AngularJS代码,我不明白sum函数是如何工作的:

  • reduce
    的作用是什么
  • 如何设置或保存参数toral
  • 为什么末尾有一个“0”
  • JavaScript HTML
    
    {{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>