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

JS数组检测'(not set)'元素逻辑错误排查与修正

二维数组检测'(not set)'元素的逻辑错误排查与修正

需求说明

现有两种二维数组results:

  • 包含['(not set)', '87793', '6000']这类元素的数组
  • 以['key', '87793', '6000']开头的数组

要求:如果数组中存在'(not set)'元素,执行console.log('Not Set Data is there');否则执行console.log('Not Set Data is not found')。

用户原代码

var results = [
  ['(not set)', '87793', '1261928.2330840048'],
  ['(other)', '1146', '28096.821814000003'],
  ['test', '22', '215.958067']
]
var final = {};
for (var i = 0; i < results.length; i++) {
  console.log(results[i][0]);
  if (results[i][0] === '(not set)' || results[i][0] === '') {
    final.status = 'Not Set is found';
  } else {
    final.status = 'Not Set is NOT found';
  }
}
console.log(final)

错误原因

循环里每遍历一个元素就会覆盖final.status的值。哪怕前面已经找到'(not set)'并设置了final.status = 'Not Set is found',后面遍历到其他元素时,又会把状态改成'Not Set is NOT found',最终结果只反映最后一个元素的判断,而非数组中是否存在目标元素。

修正方案

方案一:循环找到目标后终止遍历

var results = [
  ['(not set)', '87793', '1261928.2330840048'],
  ['(other)', '1146', '28096.821814000003'],
  ['test', '22', '215.958067']
]
var final = { status: 'Not Set is NOT found' }; // 初始默认不存在
for (var i = 0; i < results.length; i++) {
  console.log(results[i][0]);
  if (results[i][0] === '(not set)' || results[i][0] === '') {
    final.status = 'Not Set is found';
    break; // 找到后直接终止循环,避免后续覆盖
  }
}
console.log(final);
// 按需求输出对应日志
if (final.status === 'Not Set is found') {
  console.log('Not Set Data is there');
} else {
  console.log('Not Set Data is not found');
}

方案二:用数组some方法简化逻辑

some方法会遍历数组,只要有一个元素满足条件就返回true,代码更简洁直观:

var results = [
  ['(not set)', '87793', '1261928.2330840048'],
  ['(other)', '1146', '28096.821814000003'],
  ['test', '22', '215.958067']
]
const hasNotSet = results.some(item => item[0] === '(not set)' || item[0] === '');
if (hasNotSet) {
  console.log('Not Set Data is there');
} else {
  console.log('Not Set Data is not found');
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 04:48:30