【知识图谱】【算法】--去重类

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);

 

posted @ 2021-06-27 18:20  惊沙男孩  阅读(102)  评论(0)    收藏  举报