【问题标题】:Get duplicate JSON Object into an array将重复的 JSON 对象放入数组中
【发布时间】:2019-01-06 07:16:25
【问题描述】:

我有 JSON 对象数组

[
 {"OBJECT":"S_DEVELOP","AUTH":"&_DEV_01_40","AKTPS":"A"},
 {"OBJECT":"S_DEVELOP","AUTH":"&_DEV_TMPOBJ","AKTPS":"A"},
 {"OBJECT":"S_DEVELOP","AUTH":"&_DEV_01_40","AKTPS":"A"}
]

从这些对象中,我需要检查 AUTH 值是否常见(重复),如果任何此类对象具有重复的 AUTH 值,我需要将此类对象存储在数组中。

所以从上面的 JSON 对象中,由于 AUTH 值 &_DEV_01_40 是重复的,输出应该是这样的

[
  {"OBJECT":"S_DEVELOP","AUTH":"&_DEV_01_40","AKTPS":"A"}, 
  {"OBJECT":"S_DEVELOP","AUTH":"&_DEV_01_40","AKTPS":"A"}
]

谁能指导我如何用平面 Javascript 编写它。

谢谢。

【问题讨论】:

  • 你自己有没有尝试过?

标签: javascript arrays json duplicates plane


【解决方案1】:

这将遍历对象数组两次。一次查找重复的 AUTH,然后第二次仅检索具有重复 AUTH 的对象。

function getDuplicates(array) {
  let seen = {};

  array.forEach((obj) => {
    seen[obj["AUTH"]] = typeof seen[obj["AUTH"]] === "undefined" ? 1 : seen[obj["AUTH"]] + 1;
  });

  let duplicateKeys = Object.keys(seen).filter((key) => seen[key] > 1);

  return array.filter((obj) => duplicateKeys.indexOf(obj["AUTH"]) !== -1);
}

JSFiddle

【讨论】:

  • 谢谢。但我想出了一个更简单的方法。
  • var dulObjArr = []; //var checkArr = []; for(var count=0; count
猜你喜欢
  • 2017-10-16
  • 2021-08-22
  • 2021-07-18
  • 2016-08-05
  • 1970-01-01
  • 2020-10-20
  • 2017-03-27
  • 1970-01-01
  • 2019-03-06
相关资源
最近更新 更多