Сортировка массива объектов с разными ключами JS

подскажите, как можно отсортировать по ключам массив объектов такого формата?

List = [
        {'4': 'dog' }, {'2': 'took'}, {'3': 'his'},
        {'-2': 'Vatsan'}, {'5': 'for'}, {'6': 'a'}, {'12': 'spin'}
       ]

не могу точно понять, как обращаться к ключам, так как это всё разные строки, а не единый формат из разряда List[0]['name']


Ответы (1 шт):

Автор решения: Neverm1ndo

Согласен c @Alexey Ten, что такая конструкция списка не очень удобна. Было бы удобнее, если список выглядел как двумерный массив так:

const List = [
  [4, 'dog' ],
  [2, 'took'],
  [3, 'his'],
  [-2, 'Vatsan'],
  [5, 'for'],
  [6, 'a'],
  [12, 'spin']
];

Но если все же использовать массив объектов, то сортировку можно сделать так:

const List = [
        {'4': 'dog' }, {'2': 'took'}, {'3': 'his'},
        {'-2': 'Vatsan'}, {'5': 'for'}, {'6': 'a'}, {'12': 'spin'}
       ];

console.log(List.sort((a, b) => Object.keys(a)[0] - Object.keys(b)[0]));

→ Ссылка