js中数组对象去重
// 数组对象去重,按照某一个属性 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 };