【知识图谱】【算法】--去重类
1. 利用Set对象
缺点:不能去重对象{}
点击查看代码
let arr = [2,3,1,5,34,90,34,23];
let b = [...new Set(arr)];
// let b = Array.from(new Set(arr));
console.log(b);
2. 利用reduce (和 普通for循环原理一样,只是不用新建变量了)
缺点:不能去重对象{}
点击查看代码
function deWeight(arr = []){
return arr.reduce((t,v,i)=>{
if(!t.includes(v)){// includes的使用
t.push(v);
}
return t;
},[]);
}
3. 利用对象的key不能重复的特性 去重
可以去重对象{}
点击查看代码
function deWeight(arr = []){
let obj = {};
let result = [];
for(let i = 0;i < arr.length; i++){
if(!obj.hasOwnProperty(arr[i])){// 利用hasOwnProperty属性
obj[arr[i]] = arr[i];
result.push(arr[i]);
}
}
// 顺便把顺序也给排了
// Object.values(obj);
return result;
}
4. 利用filter去重
缺点:不能去重对象{}
点击查看代码
let a = [1,2,3,4,3,2,5];
function deWeight(arr = []){
return arr.filter((item,index,arr)=>{
return arr.indexOf(item) == index;// indexOf函数的第二个参数是索引,是从此处开始检索,默认0;
// 利用indexOf返回第一个匹配的索引特性 20210628晚
});
}
deWeight(a);