Список пользователей -
const users = [
{
name: "user1",
active: true,
limit: 5
},
{
name: "user2",
active: true
},
{
name: "user3",
active: true
},
{
name: "user4",
active: true,
limit: 2
},
{
name: "user5",
active: true,
limit: 0
}
];
Здесь пользователи с меньшим значением limit
должны появляться первыми (в порядке возрастания лимита), а пользователи, не имеющие limit
, должны сортироваться по алфавиту. Но пользователи, имеющие limit = 0
, должны быть в последнем порядке (по алфавиту).
Код для сортировки с использованием loda sh libarary в Node.js -
import * as _ from "lodash";
const sortedUsers = _.orderBy(users, ["limit", "name"], ["asc", "asc"]);
Вывод с использованием Код выше -
[
{
name: "user5",
active: true,
limit: 0
},
{
name: "user4",
active: true,
limit: 2
},
{
name: "user1",
active: true,
limit: 5
},
{
name: "user2",
active: true
},
{
name: "user3",
active: true
}
]
Но ожидаемый результат -
[
{
name: "user4",
active: true,
limit: 2
},
{
name: "user1",
active: true,
limit: 5
},
{
name: "user2",
active: true
},
{
name: "user3",
active: true
},
{
name: "user5",
active: true,
limit: 0
}
]