我很想知道这两种选择中的哪一种在计算上更有效,如果是,为什么:
const payloadById = keyBy(action.payload.result, 'id');
state = {
...state,
...groupBy(action.payload.result.map(i => i.id), id => payloadById[id].groupingId)
}
VS
state = {
...state,
...mapValues(groupBy(action.payload.result, 'groupingId'), (v) => v.map((v) => v.id))
};
keyBy
,groupBy
和mapValues
都来自lodash。
TIA!
编辑: jsperf test在这里https://jsperf.com/reducers9999/1
所以我的问题变成了,为什么第二种方法要快40%?