首页 > 解决方案 > 如果数组为空,如何防止数组中的嵌套数据出错?

问题描述

我有这个例子:

var data={
  city:{
    street:{
      houses:[]
    }
  }
}

alert(data.city.street.houses?.[0].person);

    var data={
      city:{
        street:{
          houses:[]
        }
      }
    }

    alert(data.city.street.houses?.[0].person);

这将显示一个错误,因为它不存在houses[0],我怎样才能避免出现错误但如果houses[0]确实存在,继续嵌套?

这样做,我收到错误:

在此处输入图像描述

我该怎么做?

标签: javascript

解决方案


只需在数组项引用之后添加另一个链接运算符:

var data = {
  city: {
    street: {
      houses: []
    }
  }
}

let res = data.city.street.houses?.[0];
res = res != undefined ? res.person : 'no value';
console.log(res);


推荐阅读