3

Is it okay to use lodash inside a pure function to _.map an input value or can I only use the native Array.map which is slower?

For example:

let shortcuts = _.map(state.shortcuts, (shortcut: any) => {
    switch(shortcut.page){
      case "Transfers":  return tassign(shortcut, { badge: action.payload.transfers }); 
      case "Payments":  return tassign(shortcut, { badge: action.payload.payments }); 
      case "Inbox":  return tassign(shortcut, { badge: action.payload.inbox }); 
      case "ConsolidatedPosition":  return tassign(shortcut, { badge: action.payload.consolidatedPosition }); 
      default: return shortcut; 
    }
  });

  return tassign(state, { shortcuts: shortcuts });
4

2 回答 2

1

纯函数是返回值仅由其输入值决定的函数,没有可观察到的副作用。

Lodash 的映射与 Array.prototype.map() 类似,它创建一个新数组,其结果是对该数组中的每个元素调用提供的函数。

通常为了保持函数纯净,总是返回一个新值,并且不要执行该函数范围之外的任何其他操作,如 DOM 相关操作等。

纯函数和redux:http ://redux.js.org/docs/introduction/ThreePrinciples.html

于 2017-03-27T06:49:12.557 回答
1

Lodash的map没有状态,也没有副作用,所以没问题。

于 2017-03-27T03:05:37.377 回答