js数组去重的几种方式,js数组去重最简单的方法

js数组去重的几种方式,js数组去重最简单的方法,js数组去重的11种方法

本文主要介绍js阵列重复数据消除的11种方法。对js数组感兴趣的同学可以尝试这11种方法。

在实际工作或面试中,我们经常会遇到“阵列重复数据删除”的问题。接下来,js实现的阵列重复数据消除方法有很多:

1.依次将数组的每个元素与其他元素进行比较,找到重复的元素并删除它们。

var arr=[1,23,1,1,1,3,23,5,6,7,9,9,8,5,5,5,5];

console . log(arr);//[1, 23, 1, 1, 1, 3, 23, 5, 6, 7, 9, 9, 8, 5, 5, 5, 5]

函数noRepeat1(arr) {

for(var I=0;I arr . length-1;i ){

for(var j=I 1;j排列长度;j ){

if(arr[i]===arr[j]){

arr.splice(j,1);

j-;

}

}

}

返回arr

}

var arr 2=no repeat 1(arr);

console . log(arr 2);//[1, 23, 3, 5, 6, 7, 9, 8]

2.借助indexOf()方法,判断该元素在该数组中第一次出现的位置下标是否等于循环下标。

var arr=[1,23,1,1,1,3,23,5,6,7,9,9,8,5,5,5];

console . log(arr);//[1, 23, 1, 1, 1, 3, 23, 5, 6, 7, 9, 9, 8, 5, 5, 5]

函数noRepeat2(arr) {

for(var I=0;长度;i ) {

if (arr.indexOf(arr[i])!=i) {

剪接排列(I,1);//删除数组元素后,数组长度减1后的元素向前移动。

I-;//数组下标回退

}

}

返回arr

}

var new arr=no repeat 2(arr);

console . log(new arr);//[1, 23, 3, 5, 6, 7, 9, 8]

3.在数组中使用filter方法

var arr=[苹果,香蕉,梨,苹果,橘子];

console.log(arr) //[苹果,香蕉,梨,苹果,橘子,橘子]

var new arr=arr . filter(function(value,index,self){

return self . index of(value)===index;

});

console . log(new arr);//[苹果,香蕉,梨,橘子]

4.在新数组的帮助下,通过square的index判断数组中当前元素的index,如果等于循环的下标,则将其添加到新数组中。

var arr=[1,23,1,1,1,3,23,5,6,7,9,9,8,5,5,5];

console.log(arr) //[1,23,1,1,1,3,23,5,6,7,9,9,8,5,5,5]

函数noRepeat4(arr) {

var ret=[];

for(var I=0;长度;i ) {

if (arr.indexOf(arr[i])==i) {

ret . push(arr[I]);

}

}

返回ret

}

var arr 2=no repat 4(arr);

console . log(arr 2);//[1, 23, 3, 5, 6, 7, 9, 8]

5.使用空对象记录新数组中已经存储的元素。

var arr=[1,23,1,1,1,3,23,5,6,7,9,9,8,5];

console.log(arr) //[1,23,1,1,1,3,23,5,6,7,9,9,8,5]

var obj={ };

var new arr=[];

for(var I=0;iarr .长度;i ){

如果(!obj[arr[i]]){

obj[arr[I]]=true;

new arr . push(arr[I]);

}

}

console . log(new arr);//[1, 23, 3, 5, 6, 7, 9, 8]

6.借助新数组,判断该元素是否存在于新数组中,如果不存在,则将该元素添加到新数组中。

var arr=[1,23,1,1,1,3,23,5,6,7,9,9,8,5];

console . log(arr);//[1, 23, 1, 1, 1, 3, 23, 5, 6, 7, 9, 9, 8, 5]

函数noRepeat6(arr){

var new arr=[];

for(var I=0;长度;i ){

if(new arr . index of(arr[I])==-1){

new arr . push(arr[I]);

}

}

return newArr

}

var arr 2=no repeat 6(arr);

console . log(arr 2);//[1, 23, 3, 5, 6, 7, 9, 8]

7.借助新数组,判断该元素是否存在于新数组中。如果没有,将元素添加到新数组中(原始数组具有相同的长度,但按照字符串顺序排序)

var arr=[1,23,1,1,1,3,23,5,6,7,9,9,8,5];

console . log(arr);//[1, 23, 1, 1, 1, 3, 23, 5, 6, 7, 9, 9, 8, 5]

函数noRepeat7(arr) {

var ret=[],

结束;//临时变量用于比较重复的元素

arr . sort();//对数字重新排序

end=arr[0];

ret . push(arr[0]);

for(var I=1;长度;i ) {

if (arr[i]!=end) {//如果当前元素不等于临时元素,则将此元素添加到新数组中。

ret . push(arr[I]);

end=arr[I];

}

}

返回ret

}

var arr 2=no repat 7(arr);

console . log(arr 2);//[1, 23, 3, 5, 6, 7, 8, 9]

8.这种方法不会在新阵列的帮助下直接更改原始阵列,而是对经过重复数据消除的阵列进行排序。

var arr=[1,23,1,1,1,3,23,5,6,7,9,9,8,5];

console . log(arr);//[1, 23, 1, 1, 1, 3, 23, 5, 6, 7, 9, 9, 8, 5]

函数noRepeat8(arr) {

var结束;//临时变量用于比较重复的元素

arr . sort();//对数字重新排序

end=arr[0];

for(var I=1;长度;i ) {

If (arr[i]==end) {//如果当前元素等于临时元素,则从数组中删除此元素。

剪接排列(I,1);

I-;

}否则{

end=arr[I];

}

}

返回arr

}

var arr 2=no repeat 8(arr);

console . log(arr 2);//[1, 23, 3, 5, 6, 7, 8, 9]

9.双循环改变原始数组。

var arr=[1,1,2,2,3,3,4,4,5,5,4,3,1,2,6,6,6,6];

console . log(arr);//[1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 4, 3, 1, 2, 6, 6, 6, 6]

函数noRepeat9(arr){

for(var I=0;长度;i ) {

for(var j=0;j排列长度;j ) {

if (arr[i]==arr[j] i!=j) {//删除重复的数字。

arr.splice(j,1);

}

}

}

返回arr

}

var arr 2=no repeat 9(arr);

console . log(arr 2);//[1, 2, 3, 4, 5, 6]

10.在新阵列的帮助下

var arr=[1,1,2,2,3,3,4,4,5,5,4,3,2,1,1,1];

console . log(arr);//[1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 4, 3, 2, 1, 1, 1]

var new arr=[];

for(var I=0;长度;i ) {

var repar=[];//接收重复数据后的下标

//内部循环找到有重复数据的下标。

for(var j=I 1;j排列长度;j ) {

if (arr[i]==arr[j]) {

reparr . push(j);//找出下面重复数据的下标

}

}

//console . log(repArr);

If (repArr.length==0) {//如果重复数组没有值,则不是重复数据。

new arr . push(arr[I]);

}

}

console . log(new arr);//[5, 4, 3, 2, 1]

11.借助于ES6提供的集合结构

var arr=[1,1,2,2,3,3,4,4,5,5,4,3,2,1,1,1];

console . log(arr);//[1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 4, 3, 2, 1, 1, 1]

函数noRepeat11(arr){

var new arr=[];

var myset=新集合(arr);//利用集合结构不能接收重复数据的特性

for(我的变量值){

新推力

}

return newArr

}

var arr2=noRepeat11(arr)

console . log(arr 2);//[1, 2, 3, 4, 5]

这是js阵列重复数据消除的11种方法的详细信息。有关js阵列重复数据删除的更多信息,请关注我们的其他相关文章!

js数组去重的几种方式,js数组去重最简单的方法