利用数组的迭代方法来操作对象数组
首先定义一个数组对象:
let arr = [{
name: "Joe Satriani",
age: 46
},
{
name: "Steve Vai",
age: 44
},
{
name: "Slash",
age: 50
}
];
如果要给所有对象添加一个共有的属性或方法,可以使用array.map()方法:
arr = arr.map(item => {
item.introduce = () => {
console.log(`我叫${item.name},今年${item.age}岁。`);
};
return item;
});
此时,arr中的每个对象都拥有了introduce()方法。
如果要获取数组对象中的某一个属性或方法,也可以将map()方法这样用:
let arr1 = arr.map(item => item.name);
let arr2 = arr.map(item => item.age);
console.log(arr1); // ["Joe Satriani", "Steve Vai", "Slash"]
console.log(arr2); // [46, 44, 50]
如果要对数组对象中的某个属性进行统计,可以使用array.reduce()方法
let arr3 = arr.reduce((total, item) => total + item.age, 0);
console.log(arr3); // 140
array.reduce()语法:
array.reduce(function(total, currentValue, currentIndex, arr), initialValue)
| 参数 | 描述 | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| function(total,currentValue, index,arr) |
必需。用于执行每个数组元素的函数。 函数参数:
|
||||||||||
| initialValue | 可选。传递给函数的初始值。 |