如何将null值始终移动到列表的末尾,而不管排序方向如何-lodash



我创建了一个函数,负责根据传递给它的方向进行排序。我使用lodash库中的orderBy。

如何将空值始终移动到末尾,而不管排序方向如何?

这是我设法写的代码:

export interface TVProgram {
id: number;
title: string;
imdb: Rating;
}
export interface Rating {
rating: string;
}
import _ from "lodash";
import { TVProgram } from "../models/models";
export const sortProgramsByOrder = (
programs: TVProgram[],
order: boolean | "asc" | "desc"
) => {
const orderBy = _.orderBy(
programs,
(data) => {
if (data.imdb === null) {
return 0;
}
return Number(data.imdb.rating);
},
[order]
);
return orderBy;
};

我不知道这是否是最清晰的编写方法,但它很有效:

const orderBy = _.orderBy(
programs,
(data) => {
if (data.imdb === null) {
if (order === "asc") {
return 11;
} else if (order === "desc") {
return -1;
}
}
return Number(data.imdb.rating);
},
[order]
);

最新更新