Если вы хотите проверить, включено ли указанное свойство из вашего перечисления (например, "ГОРЫ") в массив функций, возвращаемый из API, вы можете использовать метод Array.prototype.include () :
if(featuresArrayfromApi.includes('MOUNTAIN'){
//do stuff
}
Если вы хотите проверить, включают ли функции, возвращаемые из API, одно или несколько свойств в вашем перечислении функций, вы можете объединить includes
с Array.prototype.some ( ) .
Например, в Typescript вы должны написать это так:
enum Features { MOUNTAIN, HILL, LAKE, FISH }
if(Object.keys(Features)
.some(feature => featuresFromApi.includes(feature))){
// do stuff
}
Редактировать
Клавиша features
Данные API должны отображаться как любой другой ключ (id
, name
) - просто вместо того, чтобы держать 1 значение, он содержит массив. Затем вы можете использовать проверки, предложенные выше в предложении if
. Например:
const data = [
{"id":"111", "name":"jack", "features":["MOUNTAIN", "HILL"]},
{"id":"222", "name":"john", "features":["FISH", "HILL", "LAKE"]}
{"id":"333", "name":"joe", "features":["LAKE", "HILL", "FISH"]}
]
data.map(record =>{
console.log(record.id);
console.log(record.name);
if (record.features.includes('MOUNTAIN'){
// do stuff
}
})
Также имейте в виду, что enum
является символом Typescript, который недоступен в Javascript, поэтому, если вы не используете Typescript, вы можете просто объявить его следующим образом и это будет работать так же:
const Features = {
MOUNTAIN: "MOUNTAIN",
HILL: "HILL",
LAKE, "LAKE",
FISH: "FISH"
}