изменить порядок вложенных свойств объекта json по ключу - PullRequest
0 голосов
/ 10 октября 2019
{
  "color_group_01": {
    "blue_50": "#4080fb",
    "blue_40": "#6fa1fc",
    "blue_30": "#9dc2fd",
    "blue_20": "#cadefe",
    "blue_10": "#ebf4ff",
    "blue_100": "#011338",
    "blue_90": "#011d5f",
    "blue_80": "#022b8f",
    "blue_70": "#053fc4",
    "blue_60": "#165cfa"
  },
  "color_group_02": {
    "green_90": "#022d0d",
    "green_80": "#044317",
    "green_70": "#0e6027",
    "green_100": "#071908",
    "green_60": "#198038",
    "green_50": "#24a148",
    "green_40": "#42be65",
    "green_30": "#6fdc8c",
    "green_20": "#a7f0ba",
    "green_10": "#defbe6"
  }
}

У меня есть файл JSON, сгенерированный как указано выше. Он имеет 12 объектов "color_group_".

Что я хочу сделать, это изменить порядок свойств в каждой группе по ключу, чтобы перейти от 10-100. А также держите "color_group_" в порядке 01-12. В результате, как показано ниже:

{
  "color_group_01": {
    "blue_10": "#ebf4ff",
    "blue_20": "#cadefe",
    "blue_30": "#9dc2fd",
    "blue_40": "#6fa1fc",
    "blue_50": "#4080fb",
    "blue_60": "#165cfa",
    "blue_70": "#053fc4",
    "blue_80": "#022b8f",
    "blue_90": "#011d5f",
    "blue_100": "#011338"
  },
  "color_group_02": {
    "green_10": "#defbe6",
    etc...
  }
}

Я изо всех сил, как это сделать? Могут ли некоторые помочь? Нет решений jQuery, пожалуйста:)

Заранее спасибо

1 Ответ

0 голосов
/ 11 октября 2019

Сначала вам нужно загрузить свой JSON в объект javascript, используя JSON.parse (). Однако ваши объекты на самом деле не знают сортировку своих ключей, вместо этого вы можете извлечь ключи вашего объекта и отсортировать их соответствующим образом

const keysArray = Object.keys(yourObject).sort((a, b) => /* your sort function here */);

Затем вы можете перебрать этот keysArray, который теперь является всеми вашими ключамиотсортировать и получить доступ к вашему объекту оттуда

keysArray.forEach(key => console.log(yourObject[key]));
...