javascript - 在 if 语句中检查 "undefined"时出现 "undefined"错误

标签 javascript object

我正在检查一个对象(如关联数组)以查看其中的部分数据是否可用,但我收到了未定义错误正是在 if 语句中,我正在检查它是否是 undefined !

我有一个像这样的对象:

var data = {
    1: {
        2: {
            3: [
                ["a","b"],
                ["c","d"],
            ],
        }
    }
}

我还尝试过使用双引号,例如: var data = { "1": { "2": { ...

这些是我已经尝试过的 if 语句。所有这些都失败了,Firebug正在生成TypeError:data[1][2][3]未定义,恰好在if语句中:

if (typeof data[1][2][3] == "undefined") {
if (data[1][2][3] === undefined) { 
// when I have double quotes
if (typeof data["1"]["2"]["3"] == "undefined") {
if (data["1"]["2"]["3"] === undefined) { 

我在 jsfiddle.net 上检查过,它工作正常。我尝试了所有我能想象到的事情,但我仍然不知道为什么它在 if 语句中失败。

更新

看看这个,天哪:

enter image description here

最佳答案

如果variable[1][2][3]未定义,脚本无法检查variable[1][2][3][4]是否为未定义或未定义。您应该检查树的整个深度是否未定义

if(1 in variable)
{
  if(2 in variable[1])
  {
     if(3 in variable[1][2])
     {
       if(typeof variable[1][2][3][4] === 'undefined'){
          // Do something
       }
     }
  }
}

关于javascript - 在 if 语句中检查 "undefined"时出现 "undefined"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16142957/

相关文章:

javascript - Bootstrap Carousel 和我正在构建的主题出现问题

javascript - js/jq中检测鼠标向上、向左、向右、向下移动

java - 给定两个类,在另一个类中创建每个类的对象会导致 StackOverflow 异常

javascript - 如何联合javascript中的复杂对象?

javascript - 等同于基于 Jquery Datatables 中的基础数据进行排序的 mRender

javascript:一次预加载一个图像

javascript - Sequelize : Changing the nested data structure

JavaScript ES6 : array of objects to array grouped by key and indexed by property

javascript - JSON 与存储设置的对象

javascript - 一旦达到 10,如何将两个分数重置为 0?