gpt4 book ai didi

javascript - AngularJS:如何使用 $filter 从对象数组中查找对象,给定数组中的属性值数组

转载 作者:行者123 更新时间:2023-12-03 10:01:55 25 4
gpt4 key购买 nike

在数组(items 数组)中包含一组具有属性的对象

item_id:
[{item_id:1,...},{item_id:2,...}...]

有另一个数组,其中包含一组

item_ids:
[2, 8, 10]

如何使用 angularjs 的 $filter 从 items 数组中获取对象数组,其中 item_iditem_ids 数组中的对象匹配。

最佳答案

您可以使用自定义过滤器来进行此类过滤。如果您想在代码而不是模板中执行此操作,则可以使用 $filter 服务。

<强> Filter Guide

请参阅下面的代码。

var app = angular.module('app', []);

app.controller('ctrl', function($scope, $filter) {

$scope.items = [{
item_id: 1
}, {
item_id: 2
}, {
item_id: 3
}, {
item_id: 4
}];

$scope.findList = [2, 4];
$scope.findList2 = [3];

// Using $filter service.
$scope.usingservice = $filter('findobj')($scope.items, [1, 3])
});

app.filter('findobj', function() {

return function(list, obj) {

return list.filter(function(l) {
if (obj.indexOf(l.item_id) >= 0) {
return true;
}
});

};
})
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="app">
<div ng-controller="ctrl">
<div ng-repeat="item in items | findobj: findList">
{{item}}
</div>
<hr/>
<div ng-repeat="item in items | findobj: findList2">
{{item}}
</div>
<hr/>{{usingservice}}
</div>
</div>

关于javascript - AngularJS:如何使用 $filter 从对象数组中查找对象,给定数组中的属性值数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30558000/

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