使用lodash sortBy时如何检查值是否存在?

时间:2017-11-02 09:04:56

标签: arrays sorting lodash

我使用lodash对数组进行排序,使用以下代码:

this.employees = _.orderBy(this.employees, [employee => employee.acf.user_department.name], [order]);

如果此值没有数据,则失败,那么如何检查值是否存在/处理未定义的值?

我试图学会使用这些花哨的箭头功能,所以如果解释可以包含如何以ES6方式进行操作会很好。

1 个答案:

答案 0 :(得分:0)

使用lodash' s _.get() - 它可以迭代路径(第二个arg),如果路径的一部分丢失,而不是错误,则获得undefined或默认值(第3个arg):

_.get(employee, 'employee.acf.user_department.name', null)

示例:



const employee = {};

const result = _.get(employee, 'employee.acf.user_department.name', 'I\'m the default'); // the 3rd param is a default value

console.log(result);

<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.min.js"></script>
&#13;
&#13;
&#13;

在你的sort方法中(默认为空字符串):

this.employees = _.orderBy(this.employees, [employee => _.get(employee, 'employee.acf.user_department.name', '')], [order]);