前端面试题——js数组去重,能用几种方法实现(必会)

js数组去重的6种方法

  1. 使用 es6 set 方法 […new Set(arr)]
	let arr = [1,2,3,4,3,2,3,4,6,7,6]; 
	let unique = (arr)=> [...newSet(arr)]; 
	unique(arr);//[1, 2, 3, 4, 6, 7]
  1. 利用新数组 indexOf 查找 indexOf() 方法可返回某个指定的元素在数组中首次出现的位置。如果没有就返回-1。
  2. for 双重循环 通过判断第二层循环,去重的数组中是否含有该元素,如果有就退出第二层
    循环,如果没有。 j==result.length 就相等,然后把对应的元素添加到最后的数组里面。
    let arr = [1,2,3,4,3,2,3,4,6,7,6]; 
    let result = []; 
    for(var i = 0 ; i< arr.length; i++) {
    	for(var j = 0 ; j < result.length ; j++) {
    	 if( arr[i] === result[j]){
    		break;
    	};
    };
    if(j == result.length){
     result.push(arr[i]);
    }; }; 
    console.log(result);
    
  3. 利用 for 嵌套 for,然后 splice 去重
    functionunique(arr){ 
    	for(vari=0; i
  4. 利用 filter
    let arr = [1,2,3,4,3,2,3,4,6,7,6]; 
    let unique = (arr) => {
    	return arr.filter((item,index) => {
     		return arr.indexOf(item) === index;
    	}) 
    }; 
    unique(arr);
    
  5. .利用 Map 数据结构去重
    let arr = [1,2,3,4,3,2,3,4,6,7,6]; 
    let unique = (arr)=> {
    	let seen = new Map();
    	return arr.filter((item) => {
     		return !seen.has(item) && seen.set(item,1);
    	}); 
    }; 
    unique(arr);
    

你可能感兴趣的:(前端,javascript,开发语言)