为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用循环 Javascript 中的变量检查对象中的属性

如何使用循环 Javascript 中的变量检查对象中的属性

繁星淼淼 2023-09-07 17:06:08
我正在尝试访问对象属性,在循环中创建变量以从 Excel 数据中获取单元格编号。但问题是有些在 ws[cell] 中有 'v' 属性,如果没有,就会出现错误。错误类型现在是 TypeError,我认为这是因为它没有“v”。我已经尝试过条件,但出现错误的原因与我猜测的相同。我想解决这个问题。当没有“v”时,它只是通过循环,否则它会打印我知道我可以使用 xlsx.utils.sheet_to_json 来简化它,但我想知道我是否可以在 JS 中解决这个问题..请帮忙提前谢谢!这是我的代码。   const xlsx = require('xlsx');let wb = xlsx.readFile('coupang_1.xlsx');let sheetName = wb.SheetNameslet ws = wb.Sheets[sheetName[0]];let refernceCell = ws[Object.keys(ws)[0]];let range = refernceCell.substring(3,5);let firstChr = range.charCodeAt(0);let secondChr = range.charCodeAt(1);let chr1 = '';let chr2 = '';let cellNum = firstObj.substring(5);let limit = 90;let cell = '';for(let n=1; n<=cellNum; n++){    for(let i=64 ; i<=firstChr; i++){      chr1 = String.fromCharCode(i);        if(i==firstChr){           limit = secondChr;        }else{          limit = 90;        }        if(i==64){          chr1 = '';        }        for(let j=65; j<=limit; j++){          chr2 = String.fromCharCode(j);          cell = chr1+chr2+n;          let cellobj = ws[cell];          console.log(cell);          let b = 'v' in cellobj;          (b)?console.log('got it'):console.log('nope');  }}}fraction of resultD2got itE2C:\Users\q1\Documents\workspace\Practice\spread\sheet-to-json.js:57          let b = 'v' in cellobj;                      ^TypeError: Cannot use 'in' operator to search for 'v' in undefined    at Object.<anonymous> (C:\Users\q1\Documents\workspace\Practice\spread\sheet-to-json.js:57:23)单元格 d2 没有“v”属性。
查看完整描述

2 回答

?
料青山看我应如是

TA贡献1772条经验 获得超8个赞

正如我们从未定义的错误中看到的cellobj。因此,要解决此问题,您需要设置一个条件cellobj。喜欢


for (let j = 65; j <= limit; j++) {

  chr2 = String.fromCharCode(j);

  cell = chr1 + chr2 + n;

  let cellobj = ws[cell];

  if (cellobj) {

    let b = "v" in cellobj;

    b ? console.log("got it") : console.log("nope");

  }

}


查看完整回答
反对 回复 2023-09-07
?
qq_花开花谢_0

TA贡献1835条经验 获得超7个赞

正如当前错误消息所示,问题在于 is cellobjundefined因此您无法in对其应用运算符。

我想真正的问题在于该cell = chr1+chr2+n行,您可能想console.log(cell)检查手机号码的真正拼写是什么。

祝你好运!


查看完整回答
反对 回复 2023-09-07
  • 2 回答
  • 0 关注
  • 85 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信