Javascript 检查变量是否存在。[奇怪]

Javascript 检查变量是否存在。[奇怪],javascript,Javascript,我这里有个奇怪的问题 我试图检查变量是否存在 我有 for(var i=0; i<6; i++{ if(results[(i+1)].test){ results[(i+1)].test=i + 'test'; } } 我想if(results[(I+1)].test)会为我检查变量是否存在 我也试过了 if(typeof results[(i+1)].test !='undefined'){ results[(i+1)].test=i + 'test' } 但还是有

我这里有个奇怪的问题

我试图检查变量是否存在

我有

for(var i=0; i<6; i++{
  if(results[(i+1)].test){
    results[(i+1)].test=i + 'test';
  }
}
我想
if(results[(I+1)].test)
会为我检查变量是否存在

我也试过了

if(typeof results[(i+1)].test !='undefined'){
 results[(i+1)].test=i + 'test'
}
但还是有错误。我该如何解决这个问题


非常感谢

您正在检查foo.test是否未定义,但问题是foo本身(在本例中为
results[i+1]
)未定义

你需要先检查一下,例如:

if (typeof results[i+1] != "undefined") {
    // do stuff with results[i+1].test, or results[i+1].whatever
}

您正在检查foo.test是否未定义,但问题是foo本身(在本例中为
results[i+1]
)未定义

你需要先检查一下,例如:

if (typeof results[i+1] != "undefined") {
    // do stuff with results[i+1].test, or results[i+1].whatever
}

您需要将结果(6)指定为对象,然后才能检查.test是否存在。正如您所说,results(6)未定义,这意味着当您尝试调用results(6)时。test将得到您描述的错误。

您需要将results(6)指定为对象,然后才能检查.test是否存在。正如您所说,结果(6)未定义,这意味着当您尝试调用结果(6)时。测试将得到您描述的错误。

您没有检查结果数组的内容

您应该这样做:

if(typeof results[(i+1)] !== 'undefined'){
 results[(i+1)].test=i + 'test'
}

您没有检查结果数组的内容

您应该这样做:

if(typeof results[(i+1)] !== 'undefined'){
 results[(i+1)].test=i + 'test'
}
是否定义了结果[(i+1)]

if(results[(i+1)] && results[(i+1)].test){
  results[(i+1)].test=i + 'test';
}
是否定义了结果[(i+1)]

if(results[(i+1)] && results[(i+1)].test){
  results[(i+1)].test=i + 'test';
}

好啊我得到了它。我只是想证明我现在需要休息一下。谢谢大家!可能问题在于迭代器实际上并没有在数组中迭代:它从0迭代到6ok。我得到了它。我只是想证明我现在需要休息一下。谢谢大家!可能问题在于迭代器实际上并没有在数组中进行迭代:它从0到6进行迭代。请注意,您可以在相同的if、
if(results[i+1]&&results[i+1].test)中检查测试。
请注意,您可以在相同的if、
if(results[i+1]&&results[i+1].test)中检查测试。