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

Javascript检查数组对象非空值报Illegal return statement错误如何解决

报错原因

你遇到的Uncaught SyntaxError: Illegal return statement报错是因为return语句只能在函数内部使用,你当前的代码运行在全局作用域下,直接在for循环里写return属于语法错误。
同时原代码的循环逻辑还有隐藏问题:else分支的isNext = true赋值会覆盖之前匹配到非空值时的false结果,导致最终判断错误。


修复方案

方案1:调整原有for循环逻辑

把终止执行的return替换为终止循环的break,同时删除多余的else分支赋值即可:

let arr = [
    {
      "config": "as",
      "payload": ""
    },
    {
      "config": "as",
      "payload": "xc"
    },
    {
      "config": "",
      "payload": "xc"
    },
    {
      "config": "",
      "payload": ""
    }
]

let isNext = true;

for(let i=0; i < arr.length; i++) {
  if(arr[i].config !== '' || arr[i].payload !=='') {
     isNext = false
     break // 替换return为break终止循环
  }
}

console.log('next', isNext);

方案2:使用数组原生方法简化实现

可以直接用Array.every()方法实现需求,代码更简洁易读,逻辑也更清晰:

let arr = [
    {
      "config": "as",
      "payload": ""
    },
    {
      "config": "as",
      "payload": "xc"
    },
    {
      "config": "",
      "payload": "xc"
    },
    {
      "config": "",
      "payload": ""
    }
]
// 所有元素的config和payload都为空时返回true,否则返回false,完全匹配需求
const isNext = arr.every(item => item.config === '' && item.payload === '')

console.log('next', isNext);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 00:06:00