如何在React中检查数组中的对象是否包含键

时间:2018-10-17 11:57:58

标签: javascript

我是React的新手,并且陷入了困境。我有一个数组,其中包含一个对象。数组如下所示:

myVar = [
      {
      "a": 1,
      "b":2
  },
  {
    "c":1,
    "d":1
  },
  {
    "e":"",
    "f":4
  }
  ];

我想通过某种a语法检查数组是否包含键cfthis.state.myVar。它包含什么值无关紧要。可以为空。

我找不到使用JSX进行检查的方法。

我的输出取决于它。就像数组包含名为a or c or f的键一样,它将根据可用键显示数据。我可以执行此部分,但不确定如何检查密钥的可用性。请帮助我。

3 个答案:

答案 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){
    ...
   }
 })`