Lodash。除了未定义之外,如何分组

问题描述 投票:1回答:1

尝试将对象数组分组以获得Lodash的唯一属性

但如果财产不存在,它需要undefined像独特的财产

有办法如何避免它?并只留下现有的属性?

所以我将只实现My Office 1但我的解决方案获得undefinedMy Office 1示例数组

[
        {office: null},
        {office: 
            {
                name: 'My Office 1'
            }
        }
]

Object.keys(_.groupBy(arr, 'office.name')).map((office, index) { ... }
javascript lodash
1个回答
3
投票

您可以过滤掉没有路径的对象。

let objects = [
  {office: null},
  {office: {name: 'My Office 1'}},
  {office: {name: 'My Office 2'}},
  {office: {name: 'My Office 1'}},
];

let path = 'office.name';
let grouped = _(objects)
  .filter(object => _.has(object, path))
  .groupBy(path)
  .value();

console.log(grouped);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.min.js"></script>
© www.soinside.com 2019 - 2024. All rights reserved.