我是否必须拆分 Lodash 排序调用才能使其正常工作?



我正在尝试对前端客户端代码中的一些数据进行排序,但 lodash 表现得很奇怪。

我找到的所有示例都没有在界面中使用数据,所以我不确定我做错了什么。

假设一个示例,我想按isInPriceList(降序(,列表顺序(降序(,名称(升序(对产品进行排序。

请参阅我的堆栈闪电战示例 https://stackblitz.com/edit/typescript-lodash-playground-kbtjbg

interface IProduct {
name: string;
isInPriceList: boolean;
listOrder: number;
}
...add some data
const sortedData = _.orderBy( data, p => [ p.isInPriceList, p.listOrder, p.name ], [ "desc", "desc", "asc"]);

这无法按指定的顺序对数据进行排序,但是,这有效:

let correctlySortedData = _.orderBy( data, p => p.name, "asc");
correctlySortedData = _.orderBy( correctlySortedData, p => p.listOrder, "desc" );
correctlySortedData = _.orderBy( correctlySortedData, p => p.isInPriceList, "desc" );

我假设第二个参数有问题。

第二个参数应该是一个迭代器,解析为参数名称(字符串(的数组

,排序方式如下:const sortedData = _.orderBy( data, ['isInPriceList', 'listOrder', 'name'], [ "desc", "desc", "asc"]);

请参阅文档示例:https://lodash.com/docs/4.17.15#orderBy

最新更新