MST

星途 面试题库

面试题:JavaScript数组reduce方法的复杂应用

假设有一个数组,数组元素为对象,对象包含name(字符串)和score(数字)两个属性。请使用reduce方法计算出所有对象score属性的总和,并且找出score最高的对象的name。示例数组:[{name: 'A', score: 80}, {name: 'B', score: 90}, {name: 'C', score: 75}]。
30.7万 热度难度
编程语言JavaScript

知识考点

AI 面试

面试题答案

一键面试
const arr = [{name: 'A', score: 80}, {name: 'B', score: 90}, {name: 'C', score: 75}];
const result = arr.reduce((acc, cur) => {
    acc.totalScore += cur.score;
    if (cur.score > acc.maxScore) {
        acc.maxScore = cur.score;
        acc.maxName = cur.name;
    }
    return acc;
}, {totalScore: 0, maxScore: 0, maxName: ''});
console.log(`所有对象score属性的总和: ${result.totalScore}`);
console.log(`score最高的对象的name: ${result.maxName}`);

输出结果: 所有对象score属性的总和: 245 score最高的对象的name: B