洛达什。除未定义外如何分组

Анд*_*зюк 7 javascript lodash

尝试使用 Lodash 对对象数组进行分组以获得独特的属性

但是undefined如果属性不存在,它就像唯一的属性

有没有办法避免它?只留下现有的属性?

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

[
        {office: null},
        {office: 
            {
                name: 'My Office 1'
            }
        }
]
Run Code Online (Sandbox Code Playgroud)

代码

Object.keys(_.groupBy(arr, 'office.name')).map((office, index) { ... }
Run Code Online (Sandbox Code Playgroud)

Ser*_*Pie 10

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

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);
Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.min.js"></script>
Run Code Online (Sandbox Code Playgroud)