【发布时间】:2015-08-28 12:53:45
【问题描述】:
我会询问关于 JS 中对象条件的最佳实践。
fexp:
if (a.b.c.d == 1)
但如果我不知道该对象是否具有正确的结构,我需要像这样有条件地做:
if(a && a.b && a.b.c && a.b.c.d && a.b.c.d == 1)
这是检查值的最佳方法吗?只尝试捕捉?像这样的通用方法:
javascript test for existence of nested object key
不是最好的方法,因为我需要更改条件句的定义。我不能在这个例子中使用这样的规则: if (a.b[1].c.d)
我需要记住所有路径,更改为字符串等...
我正在为我的第一个条件寻找好的解决方案: 如果 (a.b.c.d ==1 )
不改变它或以简单的方式改变它 if (is(a.b.c.d) == 1)
try catch 是可以的,但对于大量的条件则不行:(
【问题讨论】:
-
为什么不直接使用
if(a.b.c.d && a.b.c.d == 1){ // work Magic }? -
@Pogrindis 如果未定义
b,则抛出ReferenceError,@KimYu 请参阅:stackoverflow.com/questions/25973300/… -
@Pogrindis 将其放入 js 控制台并找出原因
-
有人可能会争辩说,如果您要深入访问属性,则可能需要对代码进行一些重构
-
是的.. 常识中的星期五失效!
标签: javascript node.js conditional