【发布时间】:2015-08-08 00:51:12
【问题描述】:
考虑一个对象,user:
user = {
profile: {
first_name: "Arthur",
last_name: "Dent"
},
planet: "Earth"
}
检查user.profile.first_name是否存在的最佳方法是什么?
我通常会使用(!!user && !!user.profile && !!user.profile.first_name),但这可能不是最好的方法(尤其是在较长的情况下,属性嵌套更深)。
好奇这是怎么做的!
[编辑] 考虑一下,为了争论,你需要检查 users.jordan.profile.favorites.color 的存在(故意冗长而笨拙),你不能确定任何个人的存在属性(所以可能users.jordan 存在但users.jordan.profile 不存在。)
当然,这可能表明代码中存在更普遍的问题(例如,除非填充了所有可能的属性,否则不应创建对象),但有时这无济于事。
【问题讨论】:
-
我不喜欢这个问题,也很难说清楚为什么,好奇有没有人知道为什么?
-
我不是特别喜欢问这个问题,因为这似乎是一个非常主观的问题......但这是我几乎每天都在使用的东西,也是我与同事和朋友谈论过的东西.
-
对,所以看情况,你在乎它是否存在。您对它的存在有多大信心等等。我们都应该知道如何检查它,因此很难验证和回答。将其移至 meta 或某处。