// 数组对象去重,按照某一个属性
const duplicateRemovalSimple=function(oldArr){
let newArr=[];
let obj={};
oldArr.forEach(item=>{
if(!obj[item.a]){
newArr.push(item);
obj[item.a]=true;
}
})
return newArr
}
// 数组对象去重--对比每个属性
const duplicateRemoval=function(oldArr){
// 数组对象去重,只适用于数组嵌套一层对象,如果下层还有嵌套关系时不适用,且内部对象的key需为字母
// 此方法不单独对比数组内对象的某一项,而是对比对象的每一项,所有属性值都相等则视为重复
// 对原数组进行处理,使原数组内每个对象的key值按顺序排列
oldArr=oldArr.map(item=>{
let copyItem={};
let keys=Object.keys(item).sort((a,b)=>{
// localeCompare为字母排序方法
return a.localeCompare(b);
});
keys.forEach(forEachItem=>{
copyItem[forEachItem]=item[forEachItem];
})
return item=copyItem;
})
// 对比去重
let newArr=oldArr.map(item=>{
return JSON.stringify(item);
})
newArr=[...new Set(newArr)].map(item=>{
return JSON.parse(item);
});
return newArr;
}
export { debounce,throttle,duplicateRemoval,duplicateRemovalSimple };