JavaScript - 利用数组的迭代方法来操作对象数组

128 阅读1分钟

利用数组的迭代方法来操作对象数组

  首先定义一个数组对象:

    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) 必需。用于执行每个数组元素的函数。
函数参数:
参数 描述
total 必需。初始值, 或者计算结束后的返回值。
currentValue 必需。当前元素。
currentIndex 可选。当前元素的索引。
arr 可选。当前元素所属的数组对象。
initialValue 可选。传递给函数的初始值。