您可以使用自定义函数来处理
null
作为将正确排序的不同值。
const data = [
{
"name": "Paris",
"createdAt": "2018-10-01T08:28:05.074Z",
"pinnedAt": null
},
{
"name": "New York",
"createdAt": "2018-10-01T05:16:05.074Z",
"pinnedAt": null
},
{
"name": "Washington",
"createdAt": "2018-10-02T08:28:05.074Z",
"pinnedAt": "2018-10-02T15:19:23.245Z"
}
];
const result = _.orderBy(data,
[(item) => item.pinnedAt ? item.pinnedAt : "", 'createdAt'],
['desc', 'desc']);
使用lodash版本4.17.11测试
https://npm.runkit.com/lodash
这是因为空字符串“小于”任何其他字符串值。当按降序排序时,它总是显示在列表的末尾。因为这些空字符串值是等价的,所以没有
pinnedAt
createdAt
,如预期。