JS去重的⼏种⽅法1、利⽤set去重
代码如下(⽰例):
function arr1(arr){
return Array.from(new Set(arr))
}
var arr =[1,1,1,2,2,3,4,5,6,3,4,2,4,1,];
console.log(arr1(arr))
这是⽬前最简单的去重⽅法,但是不⽀持对象⽅法,如果是复杂数据格式建议⽤以下⼏种。2、
新建⼀个空数组arr,遍历原先的数组,若遍历的值不在arr中,将值传⼊该数组。
代码如下(⽰例):
function arr1(array){
var arr =[];//⼀个新的数组存放去重后的结果
for(var i =0; i < array.length; i++){
if(arr.indexOf(array[i])==-1){//indexof()⽅法判断在数组中的位置,若不存在,返回-1
arr.push(array[i]);
}
}
return arr;
}
var Array =[1,2,2,3];
console.log(arr1(Array));// [1, 2, 3]
3.
使⽤两层for循环嵌套,再⽤splice()⽅法删除。
代码如下(⽰例):
function clear(arr){
for(var i=0; i<arr.length; i++){
for(var j=i+1; j<arr.length; j++){
if(arr[i]==arr[j]){//第⼀个等同于第⼆个,splice⽅法删除第⼆个
arr.splice(j,1);
j--;
}
}
}
return arr;
}
var arr =[1,2,2,3];
console.log(clear(arr));
4.
先⽤sort()⽅法进⾏排序,再对排序后的结果进⾏相邻⽐对。
if(!Array.isArray(arr)){
console.log('type error!')
return;
}
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]);
}
}
return arrry;
}
var arr =[1,2,2,3];
console.log(arr1(arr));
5.利⽤includes
function arr1(arr){
if(!Array.isArray(arr)){
console.log('type error!')
return
}
var array =[];
for(var i =0; i < arr.length; i++){
if(!array.includes(arr[i])){//includes 检测数组是否有某个值
array.push(arr[i]);
}
}
return array
}
var arr =[1,1,2,3];
console.log(arr1(arr))
6.使⽤hasOwnProperty
function arr1(arr){typeof array
var obj ={};
return arr.filter(function(item, index, arr){
return obj.hasOwnProperty(typeof item + item)?false:(obj[typeof item + item]=true)
})
}
var arr=[1,2,2,3];
console.log(arr1(arr));
7.使⽤filter
function arr1(arr){
return arr.filter(function(item, index, arr){
//当前元素,在原始数组中的第⼀个索引==当前索引值,否则返回当前元素
return arr.indexOf(item,0)=== index;
});
}
var arr =[1,2,2,3];
console.log(arr1(arr))
8.使⽤递归去重
var array = arr;
var len = array.length;
array.sort(function(a, b){//排序后更加⽅便去重return a - b;
})
function loop(index){
if(index >=1){
if(array[index]=== array[index -1]){
array.splice(index,1);
}
loop(index -1);//递归loop,然后数组去重
}
}
loop(len -1);
return array;
}
var arr =[1,2,2,3,3];
console.log(arr1(arr))
9.使⽤Map数据结构去重
function arr1(arr){
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]);
}
}
return array;
}
var arr =[1,2,2,3,3,4];
console.log(arr1(arr))

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。