Javascript 使用三元运算符检查数组中是否存在键
如果存在Javascript 使用三元运算符检查数组中是否存在键,javascript,arrays,reactjs,Javascript,Arrays,Reactjs,如果存在reportDate.parent,我当前正在使用三元运算符返回true。问题是它返回true,但对于某些返回值的数组,没有值属性,因此报告中断 { reportData.parent && ( <React.Fragment> <Report/> </React.Fragment> ) } 以下选项有效,因为它至少
reportDate.parent
,我当前正在使用三元运算符返回true。问题是它返回true,但对于某些返回值的数组,没有值
属性,因此报告中断
{
reportData.parent && (
<React.Fragment>
<Report/>
</React.Fragment>
)
}
以下选项有效,因为它至少有1个值:
parent: Array(3)
0: {dateTime: "05/09/2018", value: 2}
1: {dateTime: "16/06/2018"}
2: {dateTime: "19/03/2018"}
length: 3
在返回报表组件之前,我需要在此顶层执行检查,例如:
{
reportData.parent.value === undefined && (
<React.Fragment>
<Report />
</React.Fragment>
)
}
{
reportData.parent.value==未定义&&(
)
}
我是否可以使用三元运算符或其他条件渲染方法
为了重申这一点,我希望报告仅在数组中至少有一个值时返回
更新:我只是想看看键(命名值)是否存在(不仅仅是数组中是否存在值)如果
value
始终是您可以使用的编号some
reportData.parent.some(a => !!a.value)
重申一下,我希望报告只有在至少有一份报告的情况下才能返回
数组中的值
你可以试试这个:
{
reportData.parent.length > 0 && (
<React.Fragment>
<Report />
</React.Fragment>
)
}
您只需检查真实值即可
{
reportData.parent.value && (
<React.Fragment>
<Report />
</React.Fragment>
)
}
{
reportData.parent.value&&(
)
}
.value不是路径而是键Yes,它将测试value
是否真的存在,并相应地返回true或false。它在我的两个示例数组中都返回false,因为它查找的是.value,而该值不存在。请参考问题中的数组是的,这给出了数组的长度,我所有的数组都有一个长度,如果数组有一个名为value insideGot it的键,我想找到return truthy!那么,你必须遍历你的数组,使用myObj.hasOwnProperty('key')来检查一个对象自己的键,它只会在myObj上直接提供键的情况下返回true这听起来是正确的,问题是如何将它添加到我的三元运算符中?@TomRudge我已经更新了我的答案,请尝试一下,让我知道它是否如预期的那样工作。我以为这个解决方案会很接近,但它会抱怨。有些不是函数
{
reportData.parent.value && (
<React.Fragment>
<Report />
</React.Fragment>
)
}