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

JavaScript:当Name或Mobile缺失时如何显示对应__rowNum__?

解决对象属性缺失时输出对应行号的问题

我来帮你搞定这个问题~首先看你当前的代码,问题主要出在条件判断写反,还有一些小细节需要调整:

问题分析

你现在的代码逻辑是「当Name和Mobile都不为空时输出行号」,但你实际需要的是「Name或Mobile任意一个缺失/为空时输出行号」,所以条件完全写反了。另外还要注意:示例数据里有些行是直接没有这个属性(比如第3个对象没有Name,第4个没有Mobile),这时候单纯判断=== ""是不生效的,得同时考虑属性不存在的情况。

还有个小错误:你定义了rows是数组,但用了rows++,这会把数组变成数字类型,完全不符合预期,如果需要收集这些行号,应该用数组的push方法。

修正后的代码

这里给你两种写法,选你习惯的就行:

写法一:for循环(和你原代码风格一致)

var rows = [];
// 遍历所有行数据
for(var i = 0; i < XL_row_object.length; i++){
  const currentRow = XL_row_object[i];
  // 判断Name为空/不存在, 或者 Mobile为空/不存在
  const isFieldMissing = !currentRow.Name || currentRow.Name === "" || !currentRow.Mobile || currentRow.Mobile === "";
  
  if(isFieldMissing){
    // 输出期望格式的行号
    console.log(`__rowNum__:${currentRow.__rowNum__}`);
    // 如果需要把行号收集到rows数组里,就保留这行,否则可以删掉
    rows.push(currentRow.__rowNum__);
  }
}

写法二:forEach遍历(更简洁)

const rows = [];
XL_row_object.forEach(row => {
  // 同样的判断逻辑
  if(!row.Name || row.Name === "" || !row.Mobile || row.Mobile === ""){
    console.log(`__rowNum__:${row.__rowNum__}`);
    rows.push(row.__rowNum__);
  }
});

代码说明

  • !currentRow.Name:可以同时覆盖「属性不存在(undefined)」和「属性值为空字符串」的情况,因为这两种值在逻辑非运算下都会返回true
  • 把原来的&&改成||,表示任意一个条件满足就执行输出
  • 用模板字符串${}来拼接输出格式,和你的期望输出一致

用这个代码跑你提供的示例数据,就能得到你想要的结果:

__rowNum__:3
__rowNum__:4

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 13:07:48