我知道api团队是负责将正确的数据发送给请求数据的客户端的团队。但是,我仍然想知道检查属性是否存在的最佳方法。

// when state property is missing from the api response
myObject = {
  name : 'Scott',
  addressInfo : {
    address1 : '444 St Peter St',
    address2 : 'Apartment D',
    zipCode  : '55555'
  },
  birthDate : '20000101'
}


要么

// or when birtdate is missing
myObject = {
  name : 'Scott',
  addressInfo : {
    address1 : '444 St Peter St',
    address2 : 'Apartment D',
    zipCode  : '55555',
    state    : 'MN'
  }
}


要么

// when addressInfo is missing
myObject = {
  name : 'Scott',
  birthDate : '20000101'
}


下面的代码是否足以进行检查?

if (myObject.addressInfo !== undefined && myObject.addressInfo.state !== undefined) {

    // console.log(
}

最佳答案

如果您愿意使用lodashunderscore之类的库,则测试对象中是否存在键的一种非常方便的方法是_.has方法:

var x = { "a": 1 };
_.has(x,"a"); //returns true
_.has(x,"b"); //returns false

10-05 20:20