You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript实现getMostSenior函数返回所有最高龄人员数组求助

正确实现getMostSenior函数的方案

原代码问题分析

你原有代码的问题在于reduce回调始终只返回单个人员对象,遇到相同最大年龄的后续人员时会直接覆盖前一个匹配项,最终仅返回最后一个最大年龄的人员,且返回值是对象而非要求的数组。

推荐实现(易读性优先)

先计算出列表中的最大年龄,再过滤出所有年龄等于最大年龄的人员,代码简洁易维护,常规场景下性能完全足够:

const getMostSenior = humans => {
  const maxAge = Math.max(...humans.map(item => item.age));
  return humans.filter(item => item.age === maxAge);
};

高性能实现(大数据量场景)

仅对列表做一次遍历,用reduce动态收集所有最高龄人员,适合处理十万级以上的超大列表:

const getMostSenior = humans => {
  return humans.reduce((result, current) => {
    if (result.length === 0) return [current];
    if (current.age > result[0].age) return [current];
    if (current.age === result[0].age) return [...result, current];
    return result;
  }, []);
};

验证结果

用你提供的测试数据调用上述函数,返回结果和预期输出完全一致。

内容的提问来源于stack exchange,提问作者Art

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 03:24:03