通过仅选择对象的一部分属性,从另一个对象数组构建对象数组

Jea*_*rre 2 javascript arrays object ecmascript-6

具有以下输入数组:

const initialArray = [{name: 'john', age: 12, height: 178, likes: 'music'},
                      {name: 'mike', age: 22, height: 181, likes: 'sport'},
                      {name: 'anna', age: 18, height: 175, likes: 'sleep'},
                      {name: 'paul', age: 24, height: 170, likes: 'drink'}
                     ];
Run Code Online (Sandbox Code Playgroud)

我想构建一个新的对象数组,其中仅包含一些属性,例如nameheight。结果将是:

result = [{name: 'john', height: 178},
          {name: 'mike', height: 181},
          {name: 'anna', height: 175},
          {name: 'paul', height: 170}
         ];
Run Code Online (Sandbox Code Playgroud)

尝试过map,但可能有问题:

  const result = initialArray.map((a) => {
    a.name, a.height
  });
Run Code Online (Sandbox Code Playgroud)

Mam*_*mun 7

您应该在内部使用return关键字{}或用(括号)扭曲代码()

您可以尝试使用Destructuring assignment它允许您在结果对象中指定所需的属性名称:

const initialArray = [
  {name: 'john', age: 12, height: 178, likes: 'music'},
  {name: 'mike', age: 22, height: 181, likes: 'sport'},
  {name: 'anna', age: 18, height: 175, likes: 'sleep'},
  {name: 'paul', age: 24, height: 170, likes: 'drink'}
];
const result = initialArray.map(({name, height}) => ({name,height}));
console.log(result);
Run Code Online (Sandbox Code Playgroud)