对reducers 理解

Posted 五艺

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对reducers 理解相关的知识,希望对你有一定的参考价值。

    var reducers = {  
      totalInEuros : function(state, item) {
        return state.euros += item.price * 0.897424392;
      },
      totalInYen : function(state, item) {
        return state.yens += item.price * 113.852;
      }
    };

    // reducers 是上面reducers 对象
    var manageReducers = function(reducers) {
      // return 是下面 items.reduce 匿名函数
      return function(state, item) {
          console.log(state, item); // state:{euros: 0} item:{price: 10}
        return Object.keys(reducers).reduce(
          function(nextState, key) {
              // 此处为state 进行计算后再返回
            reducers[key](state, item);
            return state;
          },
          {}
        );
      }
    };

    var bigTotalPriceReducer = manageReducers(reducers);

    var initialState = {euros:0, yens: 0};

    var items = [{price: 10}, {price: 120}, {price: 1000}];

    var totals = items.reduce(bigTotalPriceReducer, initialState);

    console.log(totals);

 

以上是关于对reducers 理解的主要内容,如果未能解决你的问题,请参考以下文章

js数组高阶方法reduce经典用法代码分享

几个关于js数组方法reduce的经典片段

精心收集的 48 个 JavaScript 代码片段,仅需 30 秒就可理解!(转载)

如何理解这段代码片段中的两对括号?

对reducers 理解

Amazon Elastic Map Reduce:输入片段大小是不是重要