我有一个带有下拉过滤器的json数据列表。该列表按名称分组。但有些数据正在重复。我不想列出重复的数据。怎么做。请看下面的链接。请帮助我。
http://plnkr.co/edit/zFUkWkYde9gpmeKZ9fP1?p=preview
angular.forEach($scope.locationList, function(item){
var locations = $scope.loacationByCategory[item.field_location_category[0]];
if(locations){
locations.push(item);
}else{
$scope.loacationByCategory[item.field_location_category[0]] = [item];
$scope.categories.push(item.field_location_category[0]);
}
});
谢谢。
答案 0 :(得分:2)
你可以使用Underscore或lodash来做:
var uniqueLocations = _.uniq($scope.locationList, 'name');
这将确保对于每个name
属性,只存在一个唯一值。
更新了plunkr:http://plnkr.co/edit/aEGPAPIRIqxLFyWb956d?p=preview
请注意,即使它们属于不同的类别,也会删除重复项。您可以为_.uniq()
(docs)编写一个自定义回调函数,该函数可以在类别中进行重复数据删除,或者稍后在处理逻辑中进行过滤。