AngularJS从包含对象的数组中过滤掉
angularjs filter from array that contains object
这可能很简单,但我不确定该怎么做。我已经创建了两个作用域数组(不确定控制器中是否需要)和控制器中的实际列表
$scope.tagFilter = [{tag_id:1,tag_name:test},{tag_id:2,tag_name:test2}];
$scope.categoryFilter = [{cat_id:1,cat_name:test3},{cat_id:2,cat_name:test4}]
我的实际列表
$scope.list = [{list_id:1,category_id:1,tag:1},...]
是否可以创建一个过滤器,我可以在其中tag_id与列表中的标签进行比较,并将cat_id与category_id进行比较我正在考虑创建angular.module.filter,但不确定该怎么做
您可以编写一个 filter
函数,其行为方式如下:
var allowed_tags = $scope.tagFilter.map(function(item){
return item.tag_id;
})
var allowed_cat = $scope.categoryFilter.map(function(item){
return item.cat_id;
})
var filtered = $scope.list.filter(function(i){
return ((allowed_tags.indexOf(i.tag) != -1) &&
(allowed_cat.indexOf(i.category_id) != -1));
})
console.log(filtered);
相关文章:
- 仅当选择特定的选择选项时,才使用JavaScript过滤数组
- 在JavaScript中,按日期和之后的名称过滤数组
- 在我的例子中,如何过滤数组值
- 在AngularJS中按数字过滤数组
- JavaScript 过滤器方法返回过滤数组和空数组
- 精确过滤数组
- 使用 JavaScript 或 jQuery 过滤数组
- 在 javascript 跨浏览器中过滤数组
- 当对象键值在数组中时如何过滤数组
- 角度按条件过滤数组中的多个项目
- 是否可以使用下划线按多个值过滤数组值
- 如何在 javascript 中的对象数组中过滤数组
- 在 javascript 中过滤数组以查找 3 个连续的数字
- 如何在javascript中减少和过滤数组
- 显示过滤数组的长度
- AngularJS:如何获取 ng-options 的过滤数组
- 有没有办法在 angularjs 过滤器中显示过滤数组的属性
- AngularJS - 通过 3 个选择输入过滤数组
- jQuery/JavaScript:用另一个数组过滤数组
- 如何过滤数组并将其与 Javascript 中的函数参数进行比较