Объединить значения в нескольких объектах - PullRequest
0 голосов
/ 02 апреля 2020

Я получил указанные ниже данные объекта, которые мне нужно объединить, как я могу получить вывод ниже, если «foo» и «bar» всегда будут иметь одинаковые дочерние элементы.

{
  "foo": {
    "aaa": 1,
    "bbb": 2,
    "ccc": 3,
  },
  "bar:" {
    "aaa": "One",
    "bbb": "Two",
    "ccc": "Three",
  }
}

Ожидается вывод будет

<li>1 One</li>
<li>2 Two</li>
<li>3 Three</li>

Ответы [ 2 ]

1 голос
/ 02 апреля 2020

Попробуйте это

var foobar = {
  "foo": {
    "aaa": 1,
    "bbb": 2,
    "ccc": 3
  },
  "bar": {
    "aaa": "One",
    "bbb": "Two",
    "ccc": "Three"
  }
};

let mappedArray = Object.keys(foobar.bar).map(xxx=> "<li>" + foobar.foo[xxx] + " " + foobar.bar[xxx] + "</li>");
console.log(mappedArray.join("\n"));
1 голос
/ 02 апреля 2020

Вам нужно довольно сложное выражение для манипулирования объектами. Предполагая, что вы сохраняете ваш объект в переменной o, это выражение, вызывающее Object.keys и Array.prototype.map пару раз, преобразует ваш объект в массив склеенных соответствующих значений свойств:

const entries = Object.keys(o[Object.keys(o)[0]]).map(property => Object.keys(o).map(p => o[p][property]).join(' '));
...