对象中的属性存在但未定义

时间:2017-06-01 07:38:54

标签: javascript atom-editor

我有一个对象,在javascript中确实具有我正在寻找的属性,但是当我尝试访问该属性时,它是未定义的。

这是我的代码:

for (ret of value.methods[values[1]].ret) {
    var names = Object.keys(ret)
    console.log(JSON.stringify(ret, null, 2))
    if (names[0] == "N/A") {
      methodString = methodString.concat(` ${ret.type}`);
    }
    else {
      methodString = methodString.concat(` ${names[0]} (${ret.type}),`);
    }
  }

在上面的代码示例的第3行,我打印出对象,这是控制台输出

{
  "newPosition": {
    "type": "table"
  }
}

所以type确实存在于newPosition内部,但当我尝试在第5行或第8行访问它时,它表示它未定义。当检查属性是否存在hasOwnProperty成员函数时,它返回false

我真的很难过,我不知道该怎么做。我已经在堆栈溢出处查看了很多答案,但没有一个能为我提供这个问题的答案。

1 个答案:

答案 0 :(得分:1)

问题是ret.type undefined

您想要得到的是ret.newPosition.type