首页 编程语言 Javascript

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);(传入实参,调用函数)

对象属性去重

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

相关推荐