Отсортировать JSON объект по убыванию

507
25 сентября 2017, 04:47

Имею JSON обьект:

 {
   "http://forum.mfd.ru/forum/thread/?id=68203":{
      "userHere":1,
      "title":"        Яндекс (Yandex N.V.)\n        \n    "
   },
   "http://forum.mfd.ru/forum/thread/?id=84098":{
      "userHere":1,
      "title":"        СК ЮЖУРАЛ-АСКО (ACKO)\n        \n    "
   },
   "http://forum.mfd.ru/forum/thread/?id=67864":{
      "userHere":1,
      "title":"        Росгосстрах (РГС, RGSS)\n        \n    "
   },
   "http://forum.mfd.ru/forum/thread/?id=62700":{
      "userHere":1,
      "title":"        Томская распределительная компания (ТРК, TORS)\n        \n    "
   },
   "http://forum.mfd.ru/forum/thread/?id=64763":{
      "userHere":1,
      "title":"        Самараэнерго (SAGO)\n        \n    "
   },
   "http://forum.mfd.ru/forum/thread/?id=71770":{
      "userHere":1,
      "title":"        Сафмар (Европлан, EPLN)\n        \n    "
   },
   "http://forum.mfd.ru/forum/thread/?id=82762":{
      "userHere":1,
      "title":"        Ветка Штирлица\n        \n    "
   },
   "http://forum.mfd.ru/forum/thread/?id=62126":{
      "userHere":1,
      "title":"        Татнефть (TATN)\n        \n    "
   },
   "http://forum.mfd.ru/forum/thread/?id=77228":{
      "userHere":1,
      "title":"        Попуасс вещает и предсказывает.\n        \n    "
   },
   "http://forum.mfd.ru/forum/thread/?id=60522":{
      "userHere":1,
      "title":"        Интер РАО ЕЭС (IRAO)\n        \n    "
   },
   "http://forum.mfd.ru/forum/thread/?id=62207":{
      "userHere":1,
      "title":"        Красный октябрь (KROT)\n        \n    "
   },
   "http://forum.mfd.ru/forum/thread/?id=71341":{
      "userHere":1,
      "title":"        Новороссийский комбинат хлебопродуктов (НКХП, NKHP)\n        \n    "
   },
   "http://forum.mfd.ru/forum/thread/?id=70940":{
      "userHere":1,
      "title":"        Инвестиционный портфель на фондовом рынке - Правила управления\n        \n    "
   },
   "http://forum.mfd.ru/forum/thread/?id=62482":{
      "userHere":2,
      "title":"        МРСК Центра (MRKC)\n        \n    "
   },
   "http://forum.mfd.ru/forum/thread/?id=61449":{
      "userHere":1,
      "title":"        М.Видео (MVID)\n        \n    "
   }
}

Мне нужно отсортировать его по убыванию, по значению ключа userHere.

Answer 1

Во-первых, это не JSON. Это литерал объекта JavaScript. JSON представляет собой строковое представление данных, которое просто так сильно напоминает синтаксис JavaScript.

Во-вторых, у вас есть объект. Они несортированы. Порядок элементов не может быть гарантирован. Если вы хотите получить гарантированный заказ, вам нужно использовать массив. Это потребует изменения структуры данных.

Один из вариантов может заключаться в том, чтобы ваши данные выглядели следующим образом:

var json = [{
    "title": "title",
    "userHere": 3,
    "url": "url"
}, {
    "title": "title",
    "userHere": 6,
    "url": "url"
}, {
    "title": "title",
    "userHere": 1,
    "url": "url"
}];

Теперь у вас есть массив объектов, и мы можем сортировать его.

json.sort(function(a, b){
    return a.userHere - b.userHere;
});

Получившийся массив будет выглядеть так:

var json = [{
    "title": "title",
    "userHere": 1,
    "url": "url"
}, {
    "title": "title",
    "userHere": 3,
    "url": "url"
}, {
    "title": "title",
    "userHere": 6,
    "url": "url"
}];

Источник

READ ALSO
Событие закрытия вкладки

Событие закрытия вкладки

Открываю вкладку и нужно отследить когда она закроется

334
Telegram bot meteor

Telegram bot meteor

Добрый день, я использую данную библиотеку: https://githubcom/benjick/meteor-telegram-bot

267
js как заблокировать кнопку submit?

js как заблокировать кнопку submit?

Здравствуйте ребята, прошу помощиХочу заблокировать кнопку(submit) по нажатию на неё, чтобы пользователь не отправлял данные формы несколько...

475
помогити с chrome.proxy.settings.set для Firefox

помогити с chrome.proxy.settings.set для Firefox

Есть ли альтернатива chromeproxy

262