数组对象提取为对象数组后去重

现有原数据

let arr = [
  {a:'age',b:18,c:1,...},
  {a:'age',b:19,c:1,...},
  {a:'age',b:18,c:2,...,
  {a:'sex',b:'m',.....}
  ....]

数据处理方法:

function arrObjToObjArr(arrObj,objKey,objValue){
      let Obj={}
       for(let i=0;i<arrObj.length;i++){
        for(let key in arrObj[i]){
          if(!(key in Obj)){
            Obj[objKey] = []
          }
          Obj[objKey].push(arrObj[i][objValue])
        }
      }
      return Obj
}
function repeatObjValueByKey(obj){//对象指定keys数组去重复
  for(let key in obj){
      obj[key] = _.uniqWith(Obj[key],_.Equal)//_为lodash引入别名
  }
  return obj
}

使用arrObjToObjArr

let obj = arrObjToObjArr(arr,'a','b')

获得obj

{
  age:[18,19,18],
  sex:['m']
}

使用repeatObjValueByKey

obj = repeatObjValueByKey(obj)

获得去重后的obj

{
  age:[18,19],
  sex:['m']
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容