如何检查JavaScript中是否存在对象键?

如何检查JavaScript中是否存在对象键?,javascript,object,ecmascript-6,Javascript,Object,Ecmascript 6,我从后端获取一个对象,该对象有几个键和值。根据数据库数据,有时某些密钥不可用。所以我使用了三元运算符,但仍然不起作用 ` <tr> <td> ${(df[temp].image.status)?df[temp].image.status:'Not Assigned'} </td> </tr> ` ` ${(df[temp].image.status)?df[temp].image.status:

我从后端获取一个对象,该对象有几个键和值。根据数据库数据,有时某些密钥不可用。所以我使用了三元运算符,但仍然不起作用

 `
  <tr>
     <td>
         ${(df[temp].image.status)?df[temp].image.status:'Not Assigned'}
     </td>
  </tr>
  `
`
${(df[temp].image.status)?df[temp].image.status:“未分配”}
`
预期结果: 无论“image”键是否存在,都不应该有任何错误。 要么是某个状态,要么是“未分配”

当前结果: 类型错误:df[temp]。图像未定义


有人知道为什么会发生这种情况吗?

您正在检查已经
未定义的
值。首先,您需要验证
image
是否存在,然后才能访问其字段

<tr>
    <td>
        ${(df[temp].image && df[temp].image.status) ? (df[temp].image.status) : 'Not Assigned'}
    </td>
</tr>

${(df[temp].image&&df[temp].image.status)?(df[temp].image.status):“未分配”}

您正在检查已经
未定义的值。首先,您需要验证
image
是否存在,然后才能访问其字段

<tr>
    <td>
        ${(df[temp].image && df[temp].image.status) ? (df[temp].image.status) : 'Not Assigned'}
    </td>
</tr>

${(df[temp].image&&df[temp].image.status)?(df[temp].image.status):“未分配”}

一个是
image.status
,另一个是
imagestatus
。第一个可能有一个额外的
检查
df[temp]。image
首先存在。一个是
image.status
,另一个是
imagestatus
。第一个可能有一个额外的
检查
df[temp].image
是否首先存在。因此我们不能直接检查df[temp].image.status?@lealcelderio很好,编辑了答案以包括检查状态field@swetasharma不,您不能,无论何时尝试访问
状态
,你需要有
image
对象已经存在。你不需要这里的三元
df[temp]。image&&df[temp].image.status | |“Not Assigned”
也可以。所以我们不能直接检查df[temp].image.status?@lealcelderior很好,编辑的答案包括检查状态field@swetasharma不,你不能,无论何时尝试访问
status
,您都需要将
image
对象显示在屏幕上。您不需要在此处使用三值
df[temp]。image&&df[temp]。image.status | |“Not Assigned”
也可以使用。