Проверьте, содержит ли массив объектов ключ, равный строке - PullRequest
0 голосов
/ 15 апреля 2019

Это приложение angularjs. В представлении у меня есть доступ к массиву объектов:

var arrayOfObjects = [{"name":"blue"},{"name":"red"}];

У меня есть div, который должен отображаться, только если arrayOfObjects содержит запись с

name=='red' 

Я посмотрел на "contains", но, похоже, работает только с массивами элементов, а не объектов. Возможно ли сделать это непосредственно в представлении без необходимости кодировать это в контроллере?

1 Ответ

1 голос
/ 15 апреля 2019

Поскольку массив не понимает, что находится внутри него (в данном случае объект), вы должны проверить каждый элемент в условии.

Краткий способ сделать это - использовать some метод, подобный следующему:

<div *ngIf="arrayOfObjects.some(({ name }) => name == 'red')"></div>

some вернет true, если какой-либо элемент в arrayOfObjects удовлетворяет этому условию.Другой способ - сопоставить arrayOfObjetcs с arrayOfNames и проверить, содержит ли этот массив имя, например: arrayOfObjects.map(({ name }) => name).contains('red')

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...