javascript - 使用 Angular js 从 json 数组中删除重复值

标签 javascript arrays angularjs json

我想从以下 json 数组中删除重复项

$scope.array = [
    {"name":"aaa","key":"1"},
    {"name":"bbb","key":"2"},
    {"name":"aaa","key":"1"},
    {"name":"ccc","key":"3"},
    {"name":"bbb","key":"2"}
];

我尝试了以下代码,但它不起作用

var ids = {};

$scope.array.forEach(function (list) {
    ids[list.name] = (ids[list.name] || 0) + 1;
});

var finalResult = [];
$scope.array.forEach(function (list) {
    if (ids[list.name] === 1) finalResult.push(student);
});

console.log(finalResult);

这是预期的结果。

$scope.array = [
    {"name":"aaa","key":"1"},
    {"name":"bbb","key":"2"} ,
    {"name":"ccc","key":"3"} 
];

最佳答案

您可以使用 Array#filter 执行类似的操作

$scope = {};
$scope.array = [{
  "name": "aaa",
  "key": "1"
}, {
  "name": "bbb",
  "key": "2"
}, {
  "name": "aaa",
  "key": "1"
}, {
  "name": "ccc",
  "key": "3"
}, {
  "name": "bbb",
  "key": "2"
}];

var ids = {};

$scope.array = $scope.array.filter(function(v) {
  var ind = v.name + '_' + v.key;
  if (!ids[ind]) {
    ids[ind] = true;
    return true;
  }
  return false;
});
console.log($scope.array);

关于javascript - 使用 Angular js 从 json 数组中删除重复值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37787397/

相关文章:

javascript - 如何将容器 div 的大小调整为其子级的总高度?

c++ - 删除指向数组 C++ 的数组指针时出错

java - 如何使用 JUnit 测试对象数组

angularjs - 在 Angular 中使用 Bootstrap 预输入

javascript - ng-change 值未进入 Angular Controller

javascript - 将 JSON 对象附加到加密文本文件 PHP

javascript - html <a> 激活点击输入按下

javascript - 从另一个文件导入 ReactJS 组件?

java - 将字符串数组转换为字节数组

javascript - 处理路由器的完整 URL