JavaScript实现数组最大最小值对象返回问题求助
问题分析与修正代码
错误原因
- 未处理空数组场景:当传入空数组时,
Math.max(...[])会返回-Infinity,Math.min(...[])返回Infinity,完全不符合返回空对象的需求。 - 缺少返回语句:函数内最后一行的模板字符串没有用
return关键字返回,调用函数时会得到undefined。 - 返回格式错误:题目要求返回对象,但原代码试图返回一个字符串,结构完全不符。
修正后的完整代码
function findBigSmall(numbers) { // 处理空数组情况 if (numbers.length === 0) { return {}; } // 单个元素时,最大最小值都是自身 const highest = Math.max(...numbers); const lowest = Math.min(...numbers); // 返回符合要求的对象 return { biggest: highest, smallest: lowest }; }
代码说明
- 先判断数组长度,为空则直接返回空对象,满足需求。
- 使用
Math.max和Math.min配合扩展运算符处理数组,当数组只有一个元素时,这两个方法都会返回该元素,自然满足“同一元素为最大最小值”的要求。 - 最后返回结构正确的对象,键名和格式完全匹配题目要求。
内容的提问来源于stack exchange,提问作者CarlaCodes
相关产品推荐
相关产品推荐

