Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/441.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用循环Javascript中的变量检查对象中的属性_Javascript - Fatal编程技术网

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

如何使用循环Javascript中的变量检查对象中的属性,javascript,Javascript,我试图访问对象属性,在一个循环生成变量中,从excel数据中获取单元格编号 但问题是ws[cell]中有一些具有“v”属性,如果没有,则会出现错误。错误类型现在是TypeError,我认为这是因为它没有“v”。我试过这种情况,但错误出现的原因和我想的一样。我想解决这个问题。当没有“v”时,它只是通过循环,否则它会打印 我知道我可以使用xlsx.utils.sheet_to_json使它更简单,但我想知道我是否可以用JS解决这个问题。。 请帮忙,谢谢 这是我的密码 const xlsx =

我试图访问对象属性,在一个循环生成变量中,从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.SheetNames

let 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');
  }
}
}
constxlsx=require('xlsx');
设wb=xlsx.readFile('coupang_1.xlsx');
let sheetName=wb.SheetNames
设ws=wb.Sheets[sheetName[0]];
让referencecell=ws[Object.keys(ws)[0]];
设range=referencecell.substring(3,5);
设firstChr=range.charCodeAt(0);
设secondChr=range.charCodeAt(1);
设chr1='';
设chr2='';
设cellNum=firstObj.substring(5);
设极限=90;
设单元格=“”;

对于(设n=1;n,如错误消息当前所示,
cellobj
未定义的
,因此您无法对其应用
in
运算符

我想真正的问题是在
cell=chr1+chr2+n
行中,您可能想
console.log(cell)
来检查真正的单元格编号


祝您好运!

正如错误消息当前显示的,问题在于
cellobj
未定义的
,因此您无法对其应用
in
运算符

我想真正的问题是在
cell=chr1+chr2+n
行中,您可能想
console.log(cell)
来检查真正的单元格编号


祝你好运!

我们可以从错误中看到,
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");
  }
}

for(设j=65;j,我们可以从错误中看到
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");
  }
}

for(让j=65;j如何改进该逻辑?我想检查单元格['v'],因为某些属性是空的,它是未定义的,因为数据中没有值。感谢您的意见我如何改进该逻辑?我想检查单元格['v']由于某些属性为空,因此未定义,因为数据中没有任何值。感谢您的意见,幸好它不起作用。我已经尝试过了。感谢您的意见
if(cellobj.v)
也可以尝试此操作。如果您还没有尝试过,谢谢您尝试帮助我。我也尝试过:)这个答案怎么对你不起作用?这次到底是什么中断了?没有按我的预期工作,我无法访问带有变量nothing的对象中的属性。不幸的是,它不起作用。我已经尝试过了。感谢你的意见
if(cellobj.v)
也可以试试。如果你还没有试过,谢谢你试着帮我。我也试过:)这个答案怎么对你不起作用?这次到底是什么原因造成的?没有按照我的预期工作,我无法访问对象中的属性,变量nothing对我不起作用