尝试在Angular中过滤数组,并过滤掉某个属性的所有对象
我有一个这样的数组:
[
{
"group":"Group A",
},
{
"group":"Group A",
},
{
"group":"Group B",
},
{
"group":"Group B",
}
{
"group":"Group C",
},
{
"group":"Group C",
}
]
...我想写一个函数来返回一个只有A组和B组(不是C组)的数组。
到目前为止,这就是我所拥有的:
function filterStandings() {
for (var i = 0, len = $scope.originalArray.length; i < len; i++) {
$scope.filteredArr = [];
if (originalArray[i].group !== "Group C") {
$scope.filteredStandingsArr.push($scope.originalArray[i]);
}
}
return $scope.filteredArr;
};
然后当我尝试通过调用filterStandings()
函数在我的视图中显示此数组时,没有任何显示。
有人可以帮忙吗?
答案 0 :(得分:1)
对于您的用例:
$scope.filteredArr = $scope.originalArray.filter(function(item){
return item.group !== 'Group C'
});
答案 1 :(得分:0)
试试这个:
$scope.test = function () {
$scope.filteredArr = [];
for (var i = 0; i < $scope.items.length; i++) {
if ($scope.items[i].group != "Group C") {
$scope.filteredArr.push($scope.items[i]);
}
}
return $scope.filteredArr;
};
你很想错过使用$ scope服务并在for循环中初始化你的新数组(filteredArr)。
您还可以使用过滤器关键字:
JS
$scope.filteredArr = function (item) {
return item.group != "Group C";
};
HTML
<div ng:repeat="item in originalArray| filter: filteredArr ">
{{item}}
</div>