Вот одна вещь, которую вы можете сделать:
рассмотрим это ваш массив:
let arr = ["0.003839795 - clothes" ,"0.171756425 - food","0.00741361072561247 - electronics"];
Вы можете разделить каждый элемент массива на два отдельных массива на элемент.
Итак, в основном:
"0.003839795 - clothes"
становится ["0.003839795","clothes"]
Этот фрагмент кода сделает это:
let splittedArray = arr.map((value) => {
return value.split('-').map((v) => v.trim());
});
Теперь вы можете просто отсортировать их с помощью этой логики:
splittedArray.sort((x, y) => y[0] - x[0]);
Теперь массив отсортирован в порядке возрастания и выглядит примерно так:
[
[
"0.171756425",
"food"
],
[
"0.00741361072561247",
"electronics"
],
[
"0.003839795",
"clothes"
]
]
Теперь вы можете просто извлечь значения из этого отсортированного массива просто так:
cat1 = splittedArray[0][1];
cat1score = splittedArray[0][0];
cat2 = splittedArray[1][1];
cat2score = splittedArray[1][0];
cat3= splittedArray[2][1];
cat3score = splittedArray[0][0];
Вы также можете написать их в простом цикле for и выполнить эту задачу ^