сопоставить объект объекта с последовательностью массива - PullRequest
0 голосов
/ 29 июня 2018

Не уверен, есть ли какой-либо метод lodash или другой метод для отображения последовательности объектов. У меня есть такой случай, когда мне нужно вручную изменить порядок групп вложенных объектов.

//unprocessed
       {
           "order": [
          "home",
          "work"
        ],
        "questions": {
          "US": {
            "work": "working",
            "home": "driving home"
          },
          "UK": {
            "work": "go to work",
            "home": "go to home"
          }
        }
    }

Как я могу отобразить ответ объекта объекта вопросов на основе стоимости заказа. Обработанный вывод должен быть

{
    "questions": {
      "US": {
        "home": "driving home",
        "work": "working"
      },
      "UK": {
        "home": "go to home",
        "work": "go to work"
      }
    }
}

Ответы [ 4 ]

0 голосов
/ 29 июня 2018

Вот некоторый код для доступа к ним в порядке, указанном в массиве order, для их отображения.

const data = {"order": ["home","work"],"questions": {"US": {"work": "working","home": "driving home"},"UK": {"work": "go to work","home": "go to home"}}};

// using/accessing the data to display to client
const {order:orderedAccess, questions} = data;

Object.keys(questions).map(country=>
  orderedAccess.forEach(action=>console.log(country, action, questions[country][action]))
)
0 голосов
/ 29 июня 2018

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

Например:

вопросы: {США: ['drivung home', 'работа']}

0 голосов
/ 29 июня 2018

Не понимаю, почему вы хотите заказать пару ключ-значение. Но я сделал это для печати один раз. Смотрите код ниже.

var data = { name:'stack',
             age:40, 
             grant:6000


};
console.log(Object.entries(data).sort(function(a, b) {<SORT LOGIC>}).reduce( (o,[k,v]) => (o[k]=v,o), {} ));
0 голосов
/ 29 июня 2018

"вопросы": { "США": { "работу работаю", "домой": "ехать домой" }, "СОЕДИНЕННОЕ КОРОЛЕВСТВО": { «работа»: «иди на работу», "домой": "иди домой" } } такой же "вопросы": { "США": { "дом": "ехать домой", "работу работаю" }, "СОЕДИНЕННОЕ КОРОЛЕВСТВО": { "домой": "иди домой", «работа»: «идти на работу» } } так что ты ничего не делаешь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...