检查对象数组是否包含等于字符串的键

时间:2019-04-15 13:28:25

标签: angularjs

这是angularjs应用程序。 在视图中,我可以访问对象数组:

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

然后我有一个div,只有在arrayOfObjects包含带有

的条目时才显示
name=='red' 

我看过“ contains”,但似乎仅适用于元素数组,而不适用于对象数组。 是否可以直接在视图中执行此操作而无需在控制器中进行编码?

1 个答案:

答案 0 :(得分:1)

由于数组不了解其内部内容(在本例中为对象),因此您必须检查条件中的每个元素。

一种简单的方法是使用some这样的方法:

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

如果arrayOfObjects中的某些元素满足此条件,则some将返回true。另一种方法是将arrayOfObjetcs映射到arrayOfNames,然后他们检查该数组是否包含名称,如下所示: arrayOfObjects.map(({ name }) => name).contains('red')