Un tableau contient des objets et supprime les objets en double dans le tableau
- Si l'identifiant est le même, gardez le premier et supprimez les autres
let arr = [
{ id: 0, name: "张三" },
{ id: 1, name: "李四" },
{ id: 2, name: "王五" },
{ id: 3, name: "赵六" },
{ id: 1, name: "孙七" },
{ id: 2, name: "周八" },
{ id: 2, name: "吴九" },
{ id: 3, name: "郑十" },
];
const removeDuplicateObj = (arr) => {
let obj = {};
arr = arr.reduce((newArr, next) => {
obj[next.id] ? "" : (obj[next.id] = true && newArr.push(next));
return newArr;
}, []);
return arr;
};
console.log(removeDuplicateObj(arr));
2. Supprimez tous les doublons ------------- méthode reduce()
let arr = [
{ id : 0, nom : "Zhang San" },
{ id : 1, nom : "Li Si" },
{ id : 2, nom : "Wang Wu" },
{ id : 3, nom : "Zhao Liu" },
{ id : 1, nom : "Sun Qi" },
{ id : 2, nom : "week eight" },
{ id : 2, nom : "Wu Jiu" },
{ id : 3, nom : "Zheng Shi" },
] ;const removeDuplicateObj = (arr) => { let obj = {} ; arr = arr.reduce((newArr, next) => { obj[next.key] ? "" : (obj[next.key] = true && newArr.push(next)); return newArr; }, []) ; retour arr ; } ;
console.log(removeDuplicateObj(arr));
3. Supprimez toutes les méthodes répétées -------------- pour les boucles
let arr = [
{ id: 0, name: "张三" },
{ id: 1, name: "李四" },
{ id: 2, name: "王五" },
{ id: 3, name: "赵六" },
{ id: 1, name: "孙七" },
{ id: 2, name: "周八" },
{ id: 2, name: "吴九" },
{ id: 3, name: "郑十" },
];
const removeDuplicateObj = (arr) => {
let newArr = []
let obj = {};
for (var i = 0; i < arr.length; i++) {
if (!obj[arr[i].key]) {
newArr.push(arr[i]);
obj[arr[i].key] = true;
}
}
return newArr
};
console.log(removeDuplicateObj(arr));
4. Jugez chaque attribut de l'objet, si les valeurs d'attribut correspondantes sont les mêmes, supprimez le doublon
let arr = [
{ id: 0, name: "张三", age: 23 },
{ id: 1, name: "李四", age: 23 },
{ id: 2, name: "王五", age: 24 },
{ id: 3, name: "赵六", age: 25 },
{ id: 1, name: "孙七", age: 23 },
{ id: 2, name: "周八", age: 24 },
{ id: 2, name: "吴九", age: 26 },
{ id: 3, name: "郑十", age: 25 },
];
const removeDuplicateObj = (arr) => {
// 缓存用于记录
const newArr = [];
for (const t of arr) {
// 检查缓存中是否已经存在
if (
newArr.find(
(c) =>
c.id === t.id &&
c.age === t.age
)
) {
// 已经存在说明以前记录过,现在这个就是多余的,直接忽略
continue;
}
// 不存在就说明以前没遇到过,把它记录下来
newArr.push(t);
}
// 记录结果就是过滤后的结果
return newArr;
};
console.log(removeDuplicateObj(arr));
Lien d'origine : https://blog.csdn.net/weixin_47872719/article/details/121284505