映射数组时在 JS 中解构对象的正确语法是什么?

What is the correct syntax to destructure object in JS while mapping over array?

我有一个对象数组,我想在解构元素时对数组执行 .map()。有办法实现吗?

我目前有:

const nav = documents.map((category, index) => {
        const categoryName = category.data.category_name[0].text;
        console.log(index);
        return categoryName;
    });

我想达到:

const nav = documents.map((*destructure here so I get .text property*, index) => {
        const categoryName = category.data.category_name[0].text;
        console.log(index);
        return categoryName;
    });

编辑:请注意我也需要索引 index

只要您只需要 category_name 数组的索引 0,就可以这样做。您只需在该级别使用数组解构来从该索引分配一个变量。那个变量在另一个解构的对象中。

documents = [{
  data: {
    category_name: [{
      text: "Title 1"
    }]
  }
}, {
  data: {
    category_name: [{
      text: "Title 2"
    }, {
      text: "Title 3"
    }]
  }
}];

const nav = documents.map(({
  data: {
    category_name: [{
      text: category_name
    }]
  }
}, index) => {
  console.log(index);
  return category_name;
});

console.log(nav);

正如你所看到的,解构模式就像对象字面量一样,只是你用变量替换了你想要获取的值。