我有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编写它。
谢谢。
答案 0 :(得分:0)
这将遍历对象数组两次。一次查找重复的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);
}