多个字段分组

效果图

 

 var arr =   [
    {
        "BDCDYH": "525",
        "FDZL": "",
        "LJZH": "21844469",
        "SHBW": "701房",
        "SJCS": "1"
    },
    {
        "BDCDYH": "3663",
        "FDZL": "",
        "LJZH": "21844469",
        "SHBW": "301房",
        "SJCS": "1"
    },
    {
        "BDCDYH": "5242452",
        "FDZL": "",
        "LJZH": "21844469",
        "SHBW": "201房",
        "SJCS": "2"
    },
    {
        "BDCDYH": "3654",
        "FDZL": "",
        "LJZH": "21844499",
        "SHBW": "702房",
        "SJCS": "1"
    },
    {
        "BDCDYH": "63542778775272",
        "FDZL": "",
        "LJZH": "2184448",
        "SHBW": "202房",
        "SJCS": "2"
    },
    {
        "BDCDYH": "63542778775272",
        "FDZL": "",
        "LJZH": "2184449",
        "SHBW": "202房",
        "SJCS": "2"
    },
    {
        "BDCDYH": "35636421024535425",
        "FDZL": "",
        "LJZH": "21844469",
        "SHBW": "501房",
        "SJCS": "5"
    }
]
 //按属性名筛选
 function sort(array, hashname, hash) {
  return array.filter(function (value, index) {
      if (value[hashname] == hash) {
          return value 
      }
  })
}
// 分组
function Trans(data) {
    //提取SJCS,LJZH索引
    var hash_SJCS = [];
    var hash_LJZH = [];
    for (var i = 0; i < data.length; i++) {
        hash_SJCS.push(data[i].SJCS);
        hash_LJZH.push(data[i].LJZH);
    }
    hash_SJCS = Array.from(new Set(hash_SJCS));
    hash_LJZH = Array.from(new Set(hash_LJZH));

    var result = []
    if (hash_SJCS.length != 0 && hash_LJZH.length != 0) {
        for (var i = 0; i < hash_SJCS.length; i++) {
            var dict = {}
            var SJCS_data = []
            var Arr2=sort(data, 'SJCS', hash_SJCS[i])
            for (var j = 0; j < hash_LJZH.length; j++) {
                var dict1 = {}
                var LJZH_data = sort(Arr2, 'LJZH', hash_LJZH[j])
                dict1['LJZH'] = hash_LJZH[j]
                dict1['data'] = LJZH_data
                if(dict1['data'].length!=0){
                    SJCS_data.push(dict1)
                }
            }
            dict['SJCS'] = hash_SJCS[i]
            dict['data'] = SJCS_data
            result.push(dict)
        }
    }
    return result
}
console.log(arr)
console.log(Trans(arr))

 

posted @ 2021-11-04 16:17  前端搬运工bug  阅读(69)  评论(0编辑  收藏  举报