Я использую Lodash's orderby для сортировки ряда элементов на основе ключевого свойства.
Я хочу назначить им приоритет по другому свойству (емкости) с числом от 0 до 9. В конце должны быть отсортированы элементы с 0 емкостью, а все остальные элементы должны быть отсортированы по ключу.
Таким образом, свойство емкости должно быть преобразовано в логическое значение. Я хочу сделать это без изменения исходного объекта или добавления нового свойства или создания нового массива.
Пример данных:
[
{
"priceChild": 4098000,
"priceAdult": 4098000,
"priceInfant": 998000,
"displayIndex": 4,
"capacity": 5
},
{
"priceChild": 3698000,
"priceAdult": 3698000,
"priceInfant": 898000,
"displayIndex": 5,
"capacity": 1
},
{
"priceChild": 3006000,
"priceAdult": 3980000,
"priceInfant": 461000,
"displayIndex": 6,
"capacity": 0
},
{
"priceChild": 4912000,
"priceAdult": 6522000,
"priceInfant": 715000,
"displayIndex": 7,
"capacity": 9
}
]
Это функция сортировки, которую я сейчас использую:
orderBy(results, 'displayIndex', 'asc');
Я хочу сделать что-то подобное, но этот код не будет работать, потому что троичный оператор не будет работать для каждого элемента:
orderBy(results, [this.capacity === 0 ? true : false, 'displayIndex'], ['asc', 'asc']);