Javascript 如何使用angularjs内联筛选器比较json数组中键的完整值

Javascript 如何使用angularjs内联筛选器比较json数组中键的完整值,javascript,angularjs,filter,Javascript,Angularjs,Filter,我有一个JSON数组,希望根据匹配条件过滤掉其中的一些元素 {{myJsonArray}过滤器:{myKey:myValue}}} AngularJS中的内联筛选器的问题在于,它不比较提供的键的完整值,而是比较数组中的部分值 我没有看到任何其他替代内联过滤器,我可以在HTML中使用 //My Json Array $scope.myJsonArray = [ { id : 1, myKey : "5" }, { id : 2, myKey : "10" }, { id : 3, myKey

我有一个JSON数组,希望根据匹配条件过滤掉其中的一些元素

{{myJsonArray}过滤器:{myKey:myValue}}}

AngularJS中的内联筛选器的问题在于,它不比较提供的键的完整值,而是比较数组中的部分值

我没有看到任何其他替代内联过滤器,我可以在HTML中使用

//My Json Array
$scope.myJsonArray = [
 { id : 1, myKey : "5" },
 { id : 2, myKey : "10" },
 { id : 3, myKey : "15" },
 { id : 4, myKey : "20" }
];
I除非输出为0,否则提供给myKey的值在数组中的任何Json对象中都不存在

但实际输出似乎是2。

原因是angularjs过滤器将提供的值1与10和15进行比较,并返回true,因为这些键中确实存在1

我希望筛选器将键作为单个完整值进行比较,而不是作为值的一部分进行比较。

以下是有效值:

您期望严格的等式,所以使用下面的解决方案

{{ (myJsonArray | filter : { myKey : '15' }:true).length }}
请看末尾的:true,它用于指定严格比较

{ myKey : '15' }:true
参考并查看文档中的比较器(第三个参数)

{ myKey : '15' }:true