Belong является примером моей коллекции объектов.
const a = [
{name: "John", size: "100"},
{name: "John", size: "80"},
{name: "John", size: "82"},
{name: "John", size: "110"},
{name: "John", size: "70"},
{name: "John", size: "M"},
{name: "John", size: "S"},
{name: "John", size: "XS"},
{name: "John", size: "L"},
{name: "John", size: "XL"},
]
Как я могу естественным образом отсортировать в JavaScript, что 100 больше 80 и что 100 следует после 80 в качестве примера ?
Проблема заключается в том, что значение размера представляет собой смесь чисел и строк.
Желаемый результат в порядке возрастания:
[
{name: "John", size: "70"},
{name: "John", size: "80"},
{name: "John", size: "82"},
{name: "John", size: "100"},
{name: "John", size: "110"},
{name: "John", size: "L"},
{name: "John", size: "M"},
{name: "John", size: "S"},
{name: "John", size: "XL"},
{name: "John", size: "XS"},
]
Требуемый результат в порядке убывания:
[
{name: "John", size: "XS"},
{name: "John", size: "XL"},
{name: "John", size: "S"},
{name: "John", size: "M"},
{name: "John", size: "L"},
{name: "John", size: "110"},
{name: "John", size: "100"},
{name: "John", size: "82"},
{name: "John", size: "80"},
{name: "John", size: "70"},
]
Я пробовал Loda sh JavaScript Библиотеку таким образом в порядке возрастания, но она не сортирует ее правильно, потому что видит 100
меньше 80
, потому что 100
начинается с 1
.
_.orderBy(a, ["size"], ["asc"])