编写JS的countNums函数统计数组小于给定值元素,return部分报错如何解决
错误原因
- 你把
return语句写在了if判断的分支内部,循环运行时只要找到第一个小于指定数值的元素,就会直接返回结果终止整个函数,不会继续遍历剩下的数组元素,无法完成全量统计。 - 你拼接返回字符串时用的是当前匹配到的元素值
arr[i],不是符合条件的元素总个数,逻辑和需求不符。 - 没有处理无符合条件元素的边界场景:如果数组中所有元素都大于等于指定数值,函数不会执行任何
return语句,最终会返回undefined。 - 返回的字符串格式不符合要求,缺少必要的空格和结尾的句号。
正确实现代码
function countNums(arr, targetNum) { // 初始化计数器,用来统计符合条件的元素总数 let count = 0; // 遍历数组所有元素 for (let i = 0; i < arr.length; i++) { if (arr[i] < targetNum) { // 符合条件就给计数器加1,不要提前返回 count++; } } // 遍历完成后统一返回格式化的结果 return `${count} elements are less than ${targetNum}.`; } // 示例调用测试 console.log(countNums([7,3,9,1,20], 10)); // 输出:4 elements are less than 10. // 你的测试用例运行 const arr = [14, 25, 36, 50]; document.write(countNums(arr, 20)); // 输出:1 elements are less than 20.
运行说明
上述代码先声明计数器变量记录符合条件的元素数量,遍历完全部数组元素后再统一返回格式化后的结果,完全匹配需求的输出要求。
内容的提问来源于stack exchange,提问作者Alycia
相关产品推荐
相关产品推荐

