使用 forEach 遍历对象数组

Loop through an array of objects using forEach

有以下输入:

const myArray = [{data: {value: 1, name: 'john', age: 22 } },{data: {value: 2, name: 'mike', age: 42 } }];

需要遍历此数组以创建一个仅包含部分数据的新数组,在本例中为姓名和年龄。

结果应该是:[{name: 'john', age: 22 }, {name: 'mike', age: 42 }]

我试过使用 forEach:

const result = myArray.forEach(el => ({el.data.name, el.data.age}));

这个解决方案有什么问题?

由于 Array#forEach() 方法没有 return 值,我们不将其分配给变量,而是像循环一样使用它:

const myArray = [{data: {value: 1, name: 'john', age: 22 } },{data: {value: 2, name: 'mike', age: 42 } }];

const result = [];
myArray.forEach( ({data: {name,age}}) => result.push( {name,age} ) );

console.log( result );

:

const myArray = [{data: {value: 1, name: 'john', age: 22 } },{data: {value: 2, name: 'mike', age: 42 } }];

const result = [];
myArray.forEach( ({data: {value, ...desired}}) => result.push( desired ) );

console.log( result );