我是React的新手,并且陷入了困境。我有一个数组,其中包含一个对象。数组如下所示:
myVar = [
{
"a": 1,
"b":2
},
{
"c":1,
"d":1
},
{
"e":"",
"f":4
}
];
我想通过某种a
语法检查数组是否包含键c
或f
或this.state.myVar
。它包含什么值无关紧要。可以为空。
我找不到使用JSX进行检查的方法。
我的输出取决于它。就像数组包含名为a or c or f
的键一样,它将根据可用键显示数据。我可以执行此部分,但不确定如何检查密钥的可用性。请帮助我。
答案 0 :(得分:4)
我找不到使用JSX进行检查的方法。
这与JSX或React无关。您需要迭代数组并检查。
您可以使用任何循环和hasOwnProperty来检查对象是否具有该键。 一种可能的检查方法是使用#Array.some。
赞:
myVar = [
{
"a": 1,
"b":2
},
{
"c":1,
"d":1
},
{
"e":"",
"f":4
}
];
let isKeyPresent = myVar.some(el => {
if(el.hasOwnProperty('a') || el.hasOwnProperty('b') || el.hasOwnProperty('f'))
return true;
})
console.log('isKeyPresent', isKeyPresent);
答案 1 :(得分:2)
实际上,它与React,JSX或JavaScript本身无关。您可以检查下面的代码段是否包含任何数组项;
arr.some(item => item.hasOwnProperty('propertyName')) // returns boolean
因此,您的情况将如下所示;
myVar.some(item => item.hasOwnProperty('a'))
您可以签出this来了解如何在JSX中使用代码。
答案 2 :(得分:1)
您可以通过映射每个数组元素来遍历。
例如
myVar.map( function(item){ console.log(item) } )
现在,您可以使用here中提到的任何一种方法来检查对象item
是否包含任何必需的键。
一种方法如下:
`myVar.map( function(item){
if("a" in item){
...
}
})`