Elena0394
@Elena0394

Можно лучше сделать массив из сортированных данных объекта?

Мне нужно было создать массив, в котором будут располагаться имена людей по возрасту на убывание.
У меня получилось реализовать так:
const obj = {
  Андрей: 27,
  Катя: 25,
  Марина: 29,
  Олег: 34
};
const arrKey = [];
const arrIndex = [];
for (const key in obj) {
   if (key) {
      const lengthArrKey = arrKey.length;
      let d = true;
      for (let i = 0; i < lengthArrKey; i += 1) {
        if (arrIndex[i] <= obj[key]) {
          d = 0;
          arrKey.splice(i, 0, key);
          arrIndex.splice(i, 0, obj[key]);
          break;
        }
     }
     if (d) {
       arrKey.push(key);
       arrIndex.push(obj[key]);
     }
   }
}
console.log(arrKey) // ['Олег', 'Марина', 'Андрей', 'Катя']

Наверняка можно лучше сделать. Хочется узнать как)
  • Вопрос задан
  • 56 просмотров
Решения вопроса 1
vovaspace
@vovaspace
Frontend Engineer
const arr = Object.entries(obj)
  .sort(([nameA, ageA], [nameB, ageB]) => ageB - ageA)
  .map(([name]) => name);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы