编写JS函数实现返回22及求数组中11的倍数的最小值
JavaScript函数实现答疑
需求1:编写返回数值22的函数
直接在函数体内返回固定值即可,实现如下:
function getTwentyTwo() { return 22; }
需求2:编写返回数组中所有11的倍数的最小整数的函数
现有代码存在的问题
- 多余的范围过滤逻辑:代码中
x / 11 >= 0 && x / 11 < 1000的判断没有需求依据,会把负数的11的倍数(比如示例数组中的-22)、数值大于等于11000的11的倍数直接过滤,不符合需求要求。 - 错误的map转换:需求要求返回原数组中符合条件的整数,
map(x => x / 11)会把原数值改为除以11之后的结果,完全偏离需求。 - 缺少最小值计算逻辑:当前函数返回的是处理后的数组,没有做最小值聚合计算。
- 未处理空匹配场景:如果数组中没有任何11的倍数,没有做兼容处理。
修正后代码
let arr = [-6, -91, 1011, -100, 84, -22, 0, 1, 473] function solution(A) { // 仅过滤所有11的倍数 const validNumbers = A.filter(num => num % 11 === 0); // 无匹配值时可根据业务需求调整返回值,此处返回undefined作为示例 if (!validNumbers.length) return undefined; // 计算并返回最小值 return Math.min(...validNumbers); } console.log(solution(arr)); // 输出结果为-22,符合需求预期
内容的提问来源于stack exchange,提问作者Ahmed Ali
相关产品推荐
相关产品推荐

