原生JS的多种去重方式一

101 阅读1分钟

## 1.比较删除去重

jsfor (var i = 0; i < arr.length; i++) { arr[i]

//就是数组内的每一个数据 arr[0] === 1

//从 [1] 开始向后查找, 只要后面还有 1 这个数据, 那么把后面的删除了

//不确定后面还有几个 1, 只要有一个就要删除一个

//当后面还有 1 的时候, 就删除一个, 否则继续循环 i++ var n = i + 1

while (n < arr.length) { if (arr[i] === arr[n]) { arr.splice(n, 1) i-- } n++ } }``````

2.includes()方法

语法: 数组.includes(数据)

作用: 判断数组内是否有该数据

代码部分:

for (var i = 0; i < arr.length; i++) {

js

// arr[i] 是数组内的每一个数据

// 如果从 arr[1] 开始后面还有 1 这个数据, 那么删除一个

if (!newarr.includes( arr[i] )) {

newarr.push(arr[i])

}

    }
console.log('去重之后 : ', newarr)```


3.使用 sort 排序
判断紧挨着的两个是否一样, 
如果一样, 删除一个

	var arr = [ 1, 2, 3, 4, 10, 3, 2, 11, 1, 3, 4, 2, 11, 1, 10, 5, 6, 4, 3, 2, 5, 9 ]
	console.log('原始数组 : ', arr)
	 arr.sort()
	console.log('排序之后 : ', arr)
	 // 遍历
	for (var i = 0; i < arr.length; i++) {
	    //   // 判断当前和下一个一样
	// 判断当前和下一个一样
	 if (arr[i] === arr[i + 1]) {
	 arr.splice(i, 1)
	i--
		}
			 }
	 console.log('去重之后 : ', arr)
         
         
         
 4.使用set集合实现
 
            var s=new Set()
        var arr=[1,2,3,4,5,1,2,3,4,1,3,2];
        arr=Array.from(new Set(arr));
        console.log(arr)
        
        
 5.借助对象方式来实现
 
var arr = [ 1, 2, 3, 4, 10, 3, 2, 11, 1, 3, 4, 2, 11, 1, 10, 5, 6, 4, 3, 2, 5, 9 ]
console.log('原数组 : ', arr)
var obj = {}
for (var i = 0; i < arr.length; i++) obj[ arr[i] ] = '。'
// 把对象内的每一个索引当做 数据 插入到数组内
var newarr = []
for (var k in obj) {
 newarr.push(k - 0)
	}
		console.log(newarr)
                
                
                
                未完待续