Судя по вашему недавнему обновлению, asr
- это массив с добавленными вами свойствами. Как правило, это не очень хорошая идея, если вы не знаете, что делаете, и sort()
не будет касаться этих свойств.
Вместо этого я бы использовал обычный объект с предупреждением об объектах в JavaScript на самом деле не должны содержать упорядоченную коллекцию значений. С учетом этого предостережения, я буду хранить данные и сортировать ключи:
const asr = {by: 3, ds: 14, de: 2, vi: 1, sr: 2}
console.log(
Object.fromEntries(
Object.entries(asr).sort(
([ak, av], [bk, bv]) => av > bv ? 1 : -1
)
)
)
Все остальное я оставлю здесь, даже если это не относится к вашему вопросу.
asr
, скорее всего, массив объектов , в этом случае asr.sort()
отсортировал массив по результату метода содержащихся объектов toString
:
const asr = [{vi: 1}, {sr: 2}, {by: 3}, {ds: 14}, {de: 2}]
console.log(asr.sort())
Если вы хотите отсортировать его по значениям объекта, это поможет:
const asr = [{vi: 1}, {sr: 2}, {by: 3}, {ds: 14}, {de: 2}]
console.log(asr.sort(
(a, b) => Object.values(a)[0] > Object.values(b)[0] ? 1 : -1
))
Если вы хотите сортировать по ключам объекта, это должно работать:
const asr = [{vi: 1}, {sr: 2}, {by: 3}, {ds: 14}, {de: 2}]
console.log(asr.sort(
(a, b) => Object.keys(a)[0] > Object.keys(b)[0] ? 1 : -1
))