Sort an object by name [дубликат]

174
23 октября 2021, 18:20
На этот вопрос уже даны ответы здесь:
Сортировка объекта в javascript (2 ответа)
Закрыт 1 год назад.

Помогите отсортировать объекты в алфавитном порядке по полю name

var obj = {
    "Person1": {
        name: 'Max',
        age: 10
    },
    'Person2'': {
        name: 'John',
        age: 14
    },
    'Person3': {
        name: 'Anna',
        age: 20
    },
    'Person4': {
        name: 'Jim',
        age: 11
    }};
Answer 1

У вас нет массива объектов, который можно было бы отсортировать. У вас есть значения полей PersonN, а понятие сортировки полей не существует. Два объекта, которые отличаются только порядком полей

const obj1 = {a: 1, b: 2};
const obj1 = {b: 2, a: 1};

считаются идентичными

Answer 2

var obj = { 
  "Person1": { 
    name: 'Max', 
    age: 10 
  }, 
  'Person2': { 
    name: 'John', 
    age: 14 
  }, 
  'Person3': { 
    name: 'Anna', 
    age: 20 
  }, 
  'Person4': { 
    name: 'Jim', 
    age: 11 
  } 
}; 
 
var result = Object.keys(obj).map(key => { 
  return { key: key, obj: obj[key] };  
}).sort((a, b) => { 
  return (a.obj.name > b.obj.name)? 1 : (a.obj.name < b.obj.name)? -1 : 0; 
}).reduce((res, item) => { 
  res[item.key] = item.obj; 
  return res; 
}, {}); 
 
console.log(result);

READ ALSO
Работа с файлами HTML and JS

Работа с файлами HTML and JS

Создаю программу и надо решить проблему: В программе есть окошко для выбора текстового файла, код:

131
библиотека js-cookie

библиотека js-cookie

подскажите пожалуйста , есть библиотека fakerjs для генерации имени , как сделать так чтоб при первом заходе на сайт одно имя записалось в куку...

175
Почему не работают табы?

Почему не работают табы?

Почему не работают мульти вложенные табы, когда родители обернуты в <div>? Конечно же не дает sublings, но как сделать по другому?

239
Не срабатывает вызов функции JQUERY

Не срабатывает вызов функции JQUERY

есть код, после завершения таймера должна срабатывать requestAnimationFrame(animate) - отрисовка canvas, но она не срабатывает

121