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

数组最大最小值获取函数的空数组处理异常求助

数组最大最小值获取函数的空数组处理异常求助

嗨,我来帮你分析下问题出在哪以及怎么解决~

首先你的需求很明确:

  • 接收数字数组,返回包含biggest和smallest的对象
  • 空数组返回空对象
  • 单元素数组的话,最大最小值都是这个元素

你当前的代码在非空数组时是正常的,但遇到空数组时,Math.max(...[])会返回-Infinity,Math.min(...[])会返回Infinity,所以最终生成的对象会带有这两个不符合预期的属性,这就是为啥断言失败啦。

解决办法其实很简单,只需要先判断数组的长度,提前处理空数组的情况就行,修改后的代码如下:

function findBiggestAndSmallest(numbers) {
  // 先处理空数组的情况,直接返回空对象
  if (numbers.length === 0) {
    return {};
  }
  
  const obj = {};
  obj.biggest = Math.max(...numbers);
  obj.smallest = Math.min(...numbers);
  return obj;
}

另外补充一下,单元素数组的情况你不用额外处理,因为Math.max(...[5])和Math.min(...[5])都会返回5,刚好符合你的需求~

你可以测试下这个修改后的版本,空数组时就会返回预期的空对象了。

备注:内容来源于stack exchange,提问作者DannyClark90

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.22 10:15:31