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

JavaScript基础:统计数组负值的函数代码错误排查

代码错误排查与修正

你的代码一共有3处会直接导致运行失败/结果错误的问题,逐点说明:

  • 比较运算符书写错误:JavaScript 中小于等于的合法运算符是<=(小于号在前,等号在后),你写反成=<属于非法语法,会直接触发代码解析错误;另外就算运算符写对,循环终止条件用x <= a.length也会出现数组越界——数组下标从0开始计数,最大有效下标是a.length - 1,正确的终止条件应该是x < a.length。
  • 返回语句位置错误:你把return n写在了for循环的代码块内部,第一次循环执行完就会直接终止函数返回结果,根本不会遍历完数组里的所有元素。return语句需要挪到for循环的外层,等全部元素遍历、计数完成后再返回结果。
  • 存在冗余无效代码:else {n = n}的逻辑是把变量n的值赋值给它本身,没有任何实际作用,可以直接删除。

修正后的原逻辑代码

保留你原本的循环计数思路,修正错误后的可运行代码如下:

function myFunction(a) {
  let n = 0;
  for (let x = 0; x < a.length; x++) {
    if (a[x] < 0) {
      n++;
    }
  }
  return n;
}

可以直接用测试用例验证:比如传入数组[1, -2, 3, -5, 0],函数会正确返回负值的数量2。

可选的简洁写法

如果不需要严格遵循for循环的写法,也可以用数组内置方法更简洁地实现需求:

const countNegative = (a) => a.filter(num => num < 0).length;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 10:09:20