对于给定的哈希:
var hash = {
a: "one",
b: { cat: "two" }
};
使用两个管道||
允许在未定义的情况下放置备用值:
var number = hash.a || "just a number"; // -> "one"
var number = hash.c || "just a number"; // -> "just a number"
但是,定位嵌套哈希会导致错误:Cannot read property 'value' of undefined
:
var number = hash.c.dog || "just a number"; // -> Cannot read property 'value' of undefined
我的问题是如何定位嵌套哈希并设置默认值,因为我们正在使用'普通'哈希?
答案 0 :(得分:1)
JavaScript没有为此提供特殊语法。在假定已定义并尝试访问其中一个成员之前,您需要测试每个可能未定义的值。
您仍然可以使用||
或&&
,但在非平凡的情况下,最好只使用if
。
使用||
:
var hash = {
a: "one",
b: { cat: "two" }
};
var x = (hash.c || {}).cat
使用&&
:
var x = hash && hash.c && hash.c.cat