原数组
arr = [
{status:1,opp:2,ad:'11'},
{status:1,opp:2,ad:'22'},
{status:1,opp:3,ad:'33'},
{status:2,opp:4,ad:'44'},
{status:3,opp:5,ad:'55'}
]
处理后的数组
arr1 = [
{status:1,opp:2,add:['11','22']},
{status:1,opp:3:add:['33']}
]
arr2 = [
{status:2,opp:4:add:['44']}
]
arr3 = [
{status:3,opp:5:add:['55']}
]
怎么根据status和opp来判断分组
处理过程就是一个“分组 → 映射”,映射过程中再进行一次“分组→映射”。下面是用 Lodash 处理的
看起来每一步都有循环,不过 Lodash 会自己去优化多个循环,不用太 Care。
groupBy
也可以自己写,比如下面这个,如果有mapper
就对组成员进行映射(返回数组),没有直接返回分组结果对象(返回对象)调用过程如下: