这是我的问题: 处理这种情况的最佳(最清晰)方法是什么?
<!-- language: lang-js -->
var result = (data[0][0] && data[0][0][0]) ? data[0][0][0] : null;
我要做的是将数据[0] [0] [0]的内容分配给结果,但有时这些数据可能不可用,如果我只是说:
<!-- language: lang-js -->
var result = data[0][0][0];
我可能会收到错误,因为数据[0] [0]未初始化。 我的解决方案有效,但我确信有更好的方法可以做到...也许使用例外? 感谢
答案 0 :(得分:1)
我坚信编写清晰的代码;考虑以下重写:
var result = null;
if (data[0][0] && typeof data[0][0][0] != 'undefined') {
result = data[0][0][0];
}
这比原始代码更容易理解,也更准确。如果data[0][0][0]
始终是对象或null
,您当然可以写这个:
var result = null;
if (data[0][0] && data[0][0][0]) {
result = data[0][0][0];
}
没有真正的捷径;您必须先检查data[0][0]
,然后才能检查data[0][0][0]
。