使用“map”创建具有较少属性的新对象数组

Ade*_*emo 2 javascript arrays

我想用来map创建一个新的对象数组,该数组具有原始数组中原始对象的两个属性,所以我正在尝试这样做:

const filteredConfigurableModules = configurableModules.map(module =>
  module.name, module.configurables
);
Run Code Online (Sandbox Code Playgroud)

但这不起作用,因为只有“名称”被保存到新数组中。我在这里缺少什么?

我也尝试过这个:

const filteredConfigurableModules = configurableModules.map(module => {
  name: module.name,
  configurables: module.configurables
});
Run Code Online (Sandbox Code Playgroud)

...但最终出现语法错误:

SyntaxError: Unexpected token ':'

Sid*_*Pal 5

据我所知,您想要map从一个数组到另一个数组。您可以通过两种方式做到这一点:

排队

  const filteredConfigurableModules = configurableModules.map(module => ({name: module.name, configurables: module.configurables}));
Run Code Online (Sandbox Code Playgroud)

当您进行内联并返回一个对象时,您必须将其括在括号中,以便正确评估它。

使用退货声明

const filteredConfigurableModules = configurableModules.map(module => {
  return {
    name: module.name,
    configurables: module.configurables
  };
});
Run Code Online (Sandbox Code Playgroud)

  • 这是因为速记粗箭头和返回对象不能很好地结合在一起。运行时无法判断您是否正在尝试使用功能块或对象。 (2认同)