📌  相关文章
📜  资质| JavaScript课程测验3 |问题7(1)

📅  最后修改于: 2023-12-03 15:41:50.139000             🧑  作者: Mango

JavaScript课程测验3 - 问题7

本题涉及以下技能点:

  • 对象属性操作
  • 数组操作
  • 条件语句
题目描述

给定一个包含多个对象的数组,每个对象都有 namescore 两个属性。请编写一个函数 findMaxScore(arr),接受一个数组 arr 作为参数,返回数组中得分最高的那个对象及其分数。

输入

参数 arr 是一个对象数组,每个对象包含两个属性: namescore。如下所示:

[
  { name: 'Alice', score: 70 },
  { name: 'Bob', score: 80 },
  { name: 'Charlie', score: 90 }
]
输出

函数 findMaxScore(arr) 应该返回数组中得分最高的那个对象及其分数,返回格式如下所示:

{ name: 'Charlie', score: 90 }

注意:如果数组为空,则返回 null

示例

以下是一个使用示例:

const arr = [
  { name: 'Alice', score: 70 },
  { name: 'Bob', score: 80 },
  { name: 'Charlie', score: 90 }
];

console.log(findMaxScore(arr)); // { name: 'Charlie', score: 90 }
实现思路

我们先定义一个变量 max,用于存储当前找到的最高分。然后定义一个变量 result,用于存储得分最高的那个对象。

我们遍历数组 arr,对于每个对象,判断其得分是否比 max 大,如果是,则将 max 更新为当前得分,将 result 更新为当前对象。

遍历完成后,返回 result

实现代码
function findMaxScore(arr) {
  let max = -Infinity;
  let result = null;
  for (let i = 0; i < arr.length; i++) {
    if (arr[i].score > max) {
      max = arr[i].score;
      result = arr[i];
    }
  }
  return result;
}