映射数组时在 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);
正如你所看到的,解构模式就像对象字面量一样,只是你用变量替换了你想要获取的值。
我有一个对象数组,我想在解构元素时对数组执行 .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);
正如你所看到的,解构模式就像对象字面量一样,只是你用变量替换了你想要获取的值。