使用 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 );
有以下输入:
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 );