Как проверить, содержит ли объект в массиве ключ или нет в React

1

Я новичок для Реагирования, и я застрял в чем-то. У меня есть массив в состоянии, который содержит в нем объект. Массив выглядит следующим образом:

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

Я хочу как-то проверить, что массив содержит ключ a или c или f, используя синтаксис this.state.myVar. Неважно, какое значение оно содержит. Он может быть нулевым.

Я не мог найти способ проверить его с помощью JSX.

От этого зависит мой результат. Например, если массив содержит ключ с именем a or c or f он отображает данные в зависимости от доступного ключа. Я могу сделать эту часть, но не знаю, как я могу проверить наличие ключа. Пожалуйста, помогите мне в этом.

Теги:

3 ответа

2
Лучший ответ

На самом деле это не имеет никакого отношения к React, JSX или другому, кроме самого JavaScript. Вы можете проверить, содержит ли какой-либо элемент массива ключ с фрагментом ниже;

arr.some(item => item.hasOwnProperty('propertyName'))//returns boolean

Так что это будет что-то, что ниже для вашего дела;

myVar.some(item => item.hasOwnProperty('a'))

Вы можете проверить это, чтобы узнать, как вы можете использовать код в JSX.

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

Вы можете пройти через каждый элемент массива, сопоставляя его.

Например

myVar.map( function(item){ console.log(item) } )

Теперь вы можете проверить, содержит ли item объекта какой-либо из необходимых ключей, используя любой из описанных здесь методов. Один из способов заключается в следующем:

'myVar.map( function(item){ 
   if("a" in item){
    ...
   }
 })'

Ещё вопросы

Сообщество Overcoder
Наверх
Меню