首页 > 解决方案 > 使用 `map` 创建具有更少属性的新对象数组

问题描述

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

const filteredConfigurableModules = configurableModules.map(module =>
  module.name, module.configurables
);

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

我也试过这个:

const filteredConfigurableModules = configurableModules.map(module => {
  name: module.name,
  configurables: module.configurables
});

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

SyntaxError: Unexpected token ':'

标签: javascriptarrays

解决方案


如我所见,您想map从一个阵列到另一个阵列。你可以通过两种方式做到这一点:

排队

  const filteredConfigurableModules = configurableModules.map(module => ({name: module.name, configurables: module.configurables}));

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

使用退货声明

const filteredConfigurableModules = configurableModules.map(module => {
  return {
    name: module.name,
    configurables: module.configurables
  };
});

推荐阅读