Как можно реструктурировать массив, содержащий объекты, в предпочтительном формате? - PullRequest
0 голосов
/ 19 марта 2019

С учетом следующего примера:

foobar: [
  {
    "foo": {
      "title": "example title foo"
      "desc": "example description foo"
    }
  },
  {
    "bar": {
      "title": "example title bar",
      "unnecessary": "this is not needed"
      "desc": "example description bar",

    }
  }
]

Как отформатировать этот массив, содержащий объекты, чтобы получить следующий результат:

[
  {"example title foo": "example description foo"}, 
  {"example title bar": "example description bar"}
]

Ответы [ 2 ]

0 голосов
/ 19 марта 2019

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

var foobar = [{ foo: { title: "example title foo", desc: "example description foo" } }, { bar: { title: "example title bar", unnecessary: "this is not needed", desc: "example description bar" } }],
    pattern = ({ title, desc }) => ({ [title]: desc }),
    result = foobar.map(o => pattern(Object.values(o)[0]));

console.log(result);
0 голосов
/ 19 марта 2019

Вы можете использовать Object.values и map. Используйте Имена вычисляемых свойств , чтобы создать нужный объект

let foobar = [{"foo":{"title":"example title foo","desc":"example description foo"}},{"bar":{"title":"example title bar","unnecessary":"this is not needed","desc":"example description bar"}}]

let output = foobar.map(a => {
  let { title, desc } = Object.values(a)[0];
  return { [title] : desc }
})

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