js---去重方法

Posted ccyq

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js---去重方法相关的知识,希望对你有一定的参考价值。

1.遍历数组法
  最简单的去重方法,实现思路:新建一个数组,遍历传入数组,值不在新数组就加入该新数组 
  注意点:判断值是否在数组的方法indexOf是ES5方法

function unique(array)
	var n = [];//一个新的临时数组
	//遍历当前数组
	for(var i = 0;i < array.length;i++)
		//如果当前数组的第i已经保存进了临时数组,那么跳过,
		//否则把当前项push到临时数组里面
		if(n.indexOf(array[i])==-1)
			n.push((array[i]))
		
	
	return n;

var array = [1,2,1,2,1,2,1,2,1,1];
console.log(unique1(array)) // 1 2

2 利用for嵌套for ,然后splice去重

function unique(array)
	for (var i = 0;i<array.length;i++) 
		for (var j = i + 1;j<array.length;j++) 
			if(array[i]==array[j])
				array.splice(j,1);
				j--;
			
		
	
	return array

var array = [1,2,3,2,2,3,9,4]
console.log(unique(array)) // 1 2 3 9 4

3 利用ES6 Set去重 

function unique(array)
	// return Array.from(new Set(array))    // 雷同 [... new Set(array)]
		return [... new Set(array)]

var array = [1,2,3,1,2,3];
console.log(unique(array)); // 1 2 3

4.利用sort()排序方法 ,然后根据排序后的结果进行遍历及相邻元素比对

function unique(arr)
	if(!Array.isArray(arr))
		return
	
	arr = arr.sort();
	var array = [arr[0]];
	for(var i = 1;i<arr.length;i++)
		if(arr[i]!==arr[i-1])
			array.push(arr[i])
		
	
	return array

var arr = [1,2,3,1,2,3];
console.log(unique(arr)) // 1 2 3

5 利用 includes 检测数组是否有某个值 

function unique(arr)
	if(!Array.isArray(arr))
		return
	
	var array = [];
	for(var i = 0;i<arr.length;i++)
		if(!array.includes(arr[i]))
		array.push(arr[i])
	
	return array

var arr = [1,2,3,1,2,3]
console.log((unique(arr))) // 1 2 3

  

以上是关于js---去重方法的主要内容,如果未能解决你的问题,请参考以下文章

JS数组去重的方法汇总

对象数组去重

js数组如何去重?

JS:数组扁平化、去重、排序

数组去重的5种方法

JS数组去重的几种常见方法