Lodash group by multiple properties if property value is true

前端 未结 8 1931
执笔经年
执笔经年 2020-12-10 02:20

I have an array of vehicles that need to be grouped by make and model, only if the \'selected\' property is true. The resulting object should contain properties for make mod

8条回答
  •  谎友^
    谎友^ (楼主)
    2020-12-10 02:37

    Grouping and filtering an object or array without LODASH on pure JS:

    // Группировка и фильтрация объекта или массива без LODASH на чистом JS:
    let k = "HUID", // group by; 
    input = [
    {HUID:11,test:1},
    {HUID:11,test:111},
    {HUID:'eeeeeeeeeeee',test:11111},
    {HUID:22,test:2},
    {HUID:33,test:3}
    ],
    result = input.reduce((map, obj) => { 
    //if(!obj.selected) { return map; } 
    let makeCode = (map[obj[k]] = map[obj[k]] || {}); // var modelCode = makeCode[obj.HUID] = makeCode[obj.HUID] || { count: 0 }; 
    let l = map[obj[k]],
        m = Object.keys(l).length; 
    l[m] = { ...obj }; 
    return map; 
    }, {} );
    console.log(result);

    Copied from VK

提交回复
热议问题