如何检查深度嵌套的对象是否未定义? [重复]

问题描述 投票:0回答:1

我想检查对象是否未定义

this.state.data.value [0] .name

我尝试了以下并且这些将说在控制台中未定义类型错误this.state.data.value。

if(typeof this.state.data.value[0].name=== "undefined"){
//do something
}

if(this.state.data.value[0].name == undefined){
//do something
}

if(!!this.state.data.value[0].name){
//do something
}

if(!this.state.data.value[0].name){
//do something
}

if(this.state){
  if(this.state.value){ // It says type error, this.state.value is undefined in the console.
    }
}

我应如何检查对象this.state.value [0] .name未定义?

javascript object undefined
1个回答
2
投票

您可以使用optional chaining?.)检查对象

let state = {
  data: {
    value: [
      {name: 'value'}
    ]
  }
}

console.log(typeof state?.data?.value?.[0]?.name);
console.log(typeof state?.data?.value?.[1]?.name);

1
投票

只需使用相同的typeof函数:

if(typeof(this.state) != 'undefined'){
  if(typeof(this.state.value) != 'undefined') { 
        // next source
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.