首页 > 解决方案 > 映射数组时在JS中解构对象的正确语法是什么?

问题描述

我有一个对象数组,我想在解构元素时对数组进行 .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

标签: javascriptarraysdestructuring

解决方案


只要您只想要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);

如您所见,解构模式就像对象字面量一样,只是您将要获取的值替换为变量。


推荐阅读