【发布时间】:2014-03-06 02:22:53
【问题描述】:
对于给定的哈希:
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
我的问题是如何定位嵌套哈希并设置默认值,就像我们使用“普通”哈希一样?
【问题讨论】:
-
相关:Javascript: How to set object property given its string name,也许这会给你一个想法。
-
@FelixKling 有趣...当然可以为该任务构建一个函数,但我想知道是否有更好的方法?!
-
好吧,如果这就是你的意思,那么没有内置的方法。如果要测试嵌套属性是否存在,则还必须测试每个“中间”属性是否存在。
-
你是对的。随着哈希越来越深,它变得越来越复杂。我会给它更多的机会,也许有人会想出一个创意。谢谢!
标签: javascript jquery hash nested-attributes