Уничтожение объектов внутри массива внутри объекта - PullRequest
0 голосов
/ 25 сентября 2019

У меня есть массив объектов, который выглядит следующим образом:

posts = [
  {
    id: 1,
    title: "abc",
    body: "lorem ipsum",
  },
  {},
] 

И я хочу получить доступ к самым внутренним ключам этого дерева (id, title, body) через деструктуризацию ES6,В настоящее время я могу достичь этого в три этапа:

const { posts } = data;
const [post] = posts;
const {title, body} = post;

Но мне интересно, возможно ли это сделать в одну строку.

Ответы [ 3 ]

1 голос
/ 25 сентября 2019

Это должно сделать работу для первого элемента:

let [{id, title, body}] = posts;

Для циклов:

posts.map(({id, title, body}) => { /* ... */})
1 голос
/ 25 сентября 2019

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment

posts = [
  {
    id: 1,
    title: "abc",
    body: "lorem ipsum",
  },
  {},
];

const [{ id, title, body: newBody }] = posts
1 голос
/ 25 сентября 2019

Просто поставьте posts[0] справа:

posts = [
  {
    id: 1,
    title: "abc",
    body: "lorem ipsum",
  },
  {},
];
const { title, body } = posts[0];

console.log(title, body);

Вы также можете поставить [] слева, вокруг {}, но это не так легко читается:

posts = [
  {
    id: 1,
    title: "abc",
    body: "lorem ipsum",
  },
  {},
];
const [{ title, body }] = posts;

console.log(title, body);
...