gpt4 book ai didi

angularjs - 在angular js中显示两个数组的交集

转载 作者:行者123 更新时间:2023-12-04 17:19:09 26 4
gpt4 key购买 nike

在 angular 中,我在 $scope 中有两个列表。一个是包列表,第二个是应用到它们的标签列表。考虑例如:

$scope.packages = [ { 
name = "pkg1",
tags = [ 1, 3]
}, {
name = "pkg2",
tags = [ 2, 3]
}]
$scope.tags = [ {
id = 1,
name = "tag1"
}, {
id = 2,
name = "tag2"
}, {
id = 3,
name = "tag3"
}]

我想使用以下内容来显示它:
<ul>
<li ng-repeat = "pkg in packages">
{{pkg.name}}
<ul>
<li ng-repeat = "tag in tags | filter : intersect(pkg.tags)">
{{tag.name}}
</li>
</ul>
</li>
</ul>

如何获得过滤器:intersect() 功能?
有没有更好的方法来达到同样的目的?

最佳答案

您可以使用 .filter.indexOf过滤器内的数组函数:

angular.module('myApp',[]).filter('intersect', function(){
return function(arr1, arr2){
return arr1.filter(function(n) {
return arr2.indexOf(n) != -1
});
};
});

然后对于 HTML,它看起来像这样:
<li ng-repeat="tag in tags | intersect: pkg.tags">

http://jsfiddle.net/8u4Zg/

关于angularjs - 在angular js中显示两个数组的交集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24999872/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com