如何从angularjs中的列表中删除重复数据?

时间:2015-01-20 13:13:37

标签: angularjs

我有一个带有下拉过滤器的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]); 
}
});

谢谢。

1 个答案:

答案 0 :(得分:2)

你可以使用Underscore或lodash来做:

var uniqueLocations = _.uniq($scope.locationList, 'name');

这将确保对于每个name属性,只存在一个唯一值。 更新了plunkr:http://plnkr.co/edit/aEGPAPIRIqxLFyWb956d?p=preview

请注意,即使它们属于不同的类别,也会删除重复项。您可以为_.uniq()docs)编写一个自定义回调函数,该函数可以在类别中进行重复数据删除,或者稍后在处理逻辑中进行过滤。