j 简单介绍几种 js 中数组去掉重复的方法
数组去重是js中最为常见的,相对来说,也是比较主要的一个知识点。下面,我们就去一探究竟。
数组去重,顾名思义,就是把原数组中的重复的项给他干掉,然后返回一个新的没有重复项的数组。

1、最简单最粗暴的set()方法
Set()方法是es6语法中的,Set类似于数组,区别在于它所有的成员都是唯一的,不能有重复的值。话不多说,因为简单,我们直接上手。
首先,var一个有多项重复的数组arr:
var arr = [1,1,1,2,3,4,6,3,1,4,5,7,6];
var Arr = new Set(arr);
var newArr = Array.from(Arr);
console.log( newArr );
这样,就可以去控台看到一个新的数组:
newArr = [1, 2, 3, 4, 6, 5, 7];

set()方法
2、indexof()方法
indexOf 方法返回一个整数值,指出 arr 数组里每一项首次出现的位置。如有存在,就返回1;如果不存在,则返回-1。因此,我们就可以利用这一特性开始我们的去重大业。
这里,我们要封装一个去重函数,之后我们调用函数即可实现所有数组去重。
首先,创一个需要去重的原数组:
var arr = [1,1,1,2,3,4,6,3,1,4,5,7,6];
function arrRemoval(arr){
var newArr = [];(创建一个新的数组,最后返回)
for( var i =0 ; i < arr.length; i ++){
if( newArr . indexOf(arr[i])== -1 ){
newArr .push( arr[i] );
}
}
return newArr;(返回新的数组,也就是去重之后的数组)
console.log(newArr);
}
arrRemoval(arr);(传入实参,调用函数)

indexOf()方法去重
3、利用对象的属性的独一性来去重
因为对象的属性是独一无二的,所以,我们可以利用这一点来实现去重。创一个新的对象,利用for循环将原数组遍历出来,然后数组里的每一项充当新对象的每一个属性,随后设置对象属性的属性值(随便设),最后将对象的属性push到新的数组中返回。即可,达到去重效果。
创一个需要去重的原数组:
var arr = [1,1,1,2,3,4,6,3,1,4,5,7,6];
再次封装一个函数arrRemoval1()
function arrRemoval1(arr){
var obj = {};
var newArr = [];
for( var i = 0; i < arr.length; i ++ ){
if( !obj[arr[i]]){
obj[arr[i]] = '去重';
newArr .push(arr[i]);
}
}
console.log(newArr);
return newArr;
}
arrRemoval1(arr);(传入实参,调用函数)

对象属性去重
好啦,今天就到这里!以上三种去重方法,希望对大家有一定的帮助。