从可能未定义的字段中赋值变量

assignment of variables from possibly undefined fields

本文关键字:赋值 变量 字段 未定义      更新时间:2023-09-26

我的问题是:处理这种情况最好(最清楚)的方法是什么?

<!-- language: lang-js -->
var result = (data[0][0] && data[0][0][0]) ? data[0][0][0] : null;   

我要做的是给result分配数据[0][0][0]的内容但有时数据可能不可用如果我只是说:

<!-- language: lang-js -->
var result = data[0][0][0];

我可能会收到一个错误,因为数据[0][0]没有初始化。我的解决方案有效,但我相信有更好的方法……也许使用异常?由于

我坚信要写出清晰的代码;考虑以下重写:

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]