我想使用map
创建一个新的对象数组,该对象数组具有原始数组中原始对象的两个属性,所以我正在尝试:
const filteredConfigurableModules = configurableModules.map(module =>
module.name, module.configurables
);
但是这不起作用,因为只有“名称”被保存到新数组中。我在这里想念什么?
我也尝试过:
const filteredConfigurableModules = configurableModules.map(module => {
name: module.name,
configurables: module.configurables
});
...但是最终出现语法错误:
SyntaxError: Unexpected token ':'
答案 0 :(得分:4)
如我所见,您想从一个数组map
到另一个数组。您可以通过2种方式做到这一点:
内联
const filteredConfigurableModules = configurableModules.map(module => ({name: module.name, configurables: module.configurables}));
内联并返回对象时,必须将其包装在括号中,以便对其进行正确评估。
使用退货声明
const filteredConfigurableModules = configurableModules.map(module => {
return {
name: module.name,
configurables: module.configurables
};
});
答案 1 :(得分:1)
您应该使用括号将其包裹起来,如下所示:
const filteredConfigurableModules = configurableModules.map(({name, configurables})=> ({
name,
configurables
}));
答案 2 :(得分:0)
您可以在地图上的箭头功能上创建一个新对象:
const filteredConfigurableModules = configurableModules.map(module =>
({ name: module.name, configurables: module.configurables })
);
这将返回带有名称和模块字段的对象数组。
如果返回对象,则需要使用括号,因为否则它将被视为没有返回的代码体。
答案 3 :(得分:0)
如果我正确理解了您的问题,您可以尝试一下吗
const filteredConfigurableModules = configurableModules.map(module => ({
name : module.name,
configurables : module.configurables,
}));