Java教程

js,javascript 数组去重

本文主要是介绍js,javascript 数组去重,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1. 利用set这种数据结构,类似数组。

Array.from(new Set(arr))
[...new Set(arr)]

弊端:无法去重成员是对象和数组。

2. 双层循环,一一比较

for(let i=0;i<arr.length;i++){
    for(let j=i+1;j<arr.length;j++){
	  if(arr[i]==arr[j]){
	   arr.splice(j,1)
	   j--
	   }
	}
}

3. 单层循环+indexOf

for (var i = 0; i < arr.length; i++) {
        if (array .indexOf(arr[i]) === -1) {
            array .push(arr[i])
        }
    }

4. 先排序(sort),再单层循环,左右比较

arr = arr.sort()
var arrry= [arr[0]];
for (var i = 1; i < arr.length; i++) {
if (arr[i] !== arr[i-1]) {
arrry.push(arr[i]);
}
}

5. 利用map数据结构,类似对象,但是键可以是任意数据类型,不能有重复的键名。

let map = new Map();
  let array = new Array();  // 数组用于返回结果
  for (let i = 0; i < arr.length; i++) {
    if(map .has(arr[i])) {  // 如果有该key值
      map .set(arr[i], true); 
    } else { 
      map .set(arr[i], false);   // 如果没有该key值
      array .push(arr[i]);
    }
  } 

6. 单层循环+includes

var array =[];
    for(var i = 0; i < arr.length; i++) {
            if( !array.includes( arr[i]) ) {//includes 检测数组是否有某个值
                    array.push(arr[i]);
              }
    }
这篇关于js,javascript 数组去重的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!