JavaScript数组去重方法

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/weixin_45115705/article/details/102370940

1. ES6 Set实现去重 (ES6最常用)

	let unique = (arr) => [...new Set(arr)]

2. indexOf实现去重

 	let array = [8, 8, '8','9'];
		
	function unique(array) {
	   var res = [];
	    for (let i = 0, len = array.length; i < len; i++) {
	        let current = array[i];
	        if (res.indexOf(current) === -1) {
	            res.push(current)
	        }
	    }
	    return res;
	}
		
	console.log(unique(array));

3. filter实现去重

	let array = [1, 2, 1, 1, '1'];
		function unique(array) {
		    let res = array.filter(function(item, index, array){
		        return array.indexOf(item) === index;
		    })
		    return res;
		}
	console.log(unique(array));

4. 双层for循环实现去重

	function unique(arr){            
	        for(let i=0; i<arr.length; i++){
	            for(let j=i+1; j<arr.length; j++){
	                if(arr[i]==arr[j]){         //第一个等同于第二个,splice方法删除第二个
	                    arr.splice(j,1);
	                    j--;
	                }
	            }
	        }
	return arr;
	}

5.includes实现去重

	function unique(arr) {
	    if (!Array.isArray(arr)) {
	        console.log('type error!')
	        return
	    }
	    let array =[];
	    for(let i = 0; i < arr.length; i++) {
	            if( !array.includes( arr[i]) ) {//includes 检测数组是否有某个值
	                    array.push(arr[i]);
	              }
	    }
	    return array
	}

6.hasOwnProperty实现去重

	function unique(arr) {
	    var obj = {};
	    return arr.filter(function(item, index, arr){
	        return obj.hasOwnProperty(typeof item + item) ? false : (obj[typeof item + item] = true)
	    })
	}
PS:未来的你,一定会感谢今天拼命努力的自己!

猜你喜欢

转载自blog.csdn.net/weixin_45115705/article/details/102370940