【发布时间】:2013-11-28 23:23:23
【问题描述】:
我正在尝试寻找一种优雅的方法来检查对象中是否存在某些深层属性。所以实际上试图避免对未定义的例如可怕的保护性检查。
if ((typeof error !== 'undefined') &&
(typeof error.responseJSON !== 'undefined') &&
(typeof error.responseJSON.error) &&
(typeof error.responseJSON.error.message)) {
errorMessage = error.responseJSON.error.message;
}
我在想的是一个方便的功能,比如
if (exists(error.responseJSON.error.message)) { ... }
有什么想法吗?为方便起见,解决方案可以使用underscore-library。
【问题讨论】:
-
您可以通过将您的请求作为字符串传递给函数来做到这一点。该函数应该用“。”分割字符串。或其他东西,然后遍历每个段以查找每个值。不过,还有其他问题和很好的答案:stackoverflow.com/questions/8817394/…
-
我在想是否有办法为对象而不是字符串处理这个?当然,我可以只 JSON.stringify 对象,但如果它直接处理对象,我会感觉好多了。
-
如果你使用了一个对象,你需要创建你正在寻找的整个结构(这很庞大,甚至比到处都是
&&还要糟糕)。字符串可能看起来很奇怪,但它是最灵活和最紧凑的解决方案。另一种方法是传递一个数组,它只是预先拆分的字符串。然后迭代该向下钻取到目标对象。
标签: javascript undefined