Я новичок для Реагирования, и я застрял в чем-то. У меня есть массив в состоянии, который содержит в нем объект. Массив выглядит следующим образом:
myVar = [
{
"a": 1,
"b":2
},
{
"c":1,
"d":1
},
{
"e":"",
"f":4
}
];
Я хочу как-то проверить, что массив содержит ключ a
или c
или f
, используя синтаксис this.state.myVar
. Неважно, какое значение оно содержит. Он может быть нулевым.
Я не мог найти способ проверить его с помощью JSX.
От этого зависит мой результат. Например, если массив содержит ключ с именем a or c or f
он отображает данные в зависимости от доступного ключа. Я могу сделать эту часть, но не знаю, как я могу проверить наличие ключа. Пожалуйста, помогите мне в этом.
На самом деле это не имеет никакого отношения к React, JSX или другому, кроме самого JavaScript. Вы можете проверить, содержит ли какой-либо элемент массива ключ с фрагментом ниже;
arr.some(item => item.hasOwnProperty('propertyName'))//returns boolean
Так что это будет что-то, что ниже для вашего дела;
myVar.some(item => item.hasOwnProperty('a'))
Вы можете проверить это, чтобы узнать, как вы можете использовать код в JSX.
Я не мог найти способ проверить его с помощью 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);
Вы можете пройти через каждый элемент массива, сопоставляя его.
Например
myVar.map( function(item){ console.log(item) } )
Теперь вы можете проверить, содержит ли item
объекта какой-либо из необходимых ключей, используя любой из описанных здесь методов. Один из способов заключается в следующем:
'myVar.map( function(item){
if("a" in item){
...
}
})'