Javascript 如何使用angularjs内联筛选器比较json数组中键的完整值
我有一个JSON数组,希望根据匹配条件过滤掉其中的一些元素 {{myJsonArray}过滤器:{myKey:myValue}}} AngularJS中的内联筛选器的问题在于,它不比较提供的键的完整值,而是比较数组中的部分值 我没有看到任何其他替代内联过滤器,我可以在HTML中使用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
//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