原生JS 陣列去重六種方式

2021-10-03 02:26:20 字數 1294 閱讀 5091

第一種: 雙重迴圈

雙層迴圈,外層迴圈元素,內層迴圈時比較值

如果有相同的值則跳過,不相同則push進陣列

/*function norepeat(arr)}}

return arr;

}*

第二種: 用splice直接在原陣列進行操作
var arr=[11,22,2,2,3,4,55,5,4,4,3];

arr.sort();

//alert(arr);

for(var i=0;i方法三:結合物件和陣列來去重function norepeat(arr);

var newarr = ;

for(var i = 0; i < arr.length; i++)

}return newarr;

}

方法四:陣列遞迴去重
運用遞迴的思想

先排序,然後從最後開始比較,遇到相同,則刪除

array.prototype.distinct = function ())

function loop(index)

loop(index - 1); //遞迴loop函式進行去重

} }loop(len-1);

return arr;

};var a = [1,2,3,4,5,6,5,3,2,4,56,4,1,2,1,1,1,1,1,1,56,45,56];

var b = a.distinct();

console.log(b.tostring()); //1,2,3,4,5,6,45,56

方法五:利用indexof以及foreach
var arr = [1,1,1,2,2,1];

function norepeat(arr)

}return newarr;

}var newarr=

for(var i in arr)

}console.log(newarr);

方法六:利用es6的set
set資料結構,它類似於陣列,其成員的值都是唯一的。

利用array.from將set結構轉換成陣列

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

let set = new set(arr);

arr = [...set];

console.log(arr);

//for of 是一種新的遍歷方式 set map array string 不能遍歷普通物件

for(let i of set)

原生JS 陣列去重的六種方式

第一種 雙重迴圈雙層迴圈,外層迴圈元素,內層迴圈時比較值 如果有相同的值則跳過,不相同則push進陣列 function norepeat arr return arr 第二種 用splice直接在原陣列進行操作var arr 11,22,2,2,3,4,55,5,4,4,3 arr.sort al...

陣列去重個人總結的六種方式

1 1.利用es6的set函式 let arr 1,2,3,4,5,3,5,6,2 let a new set arr let b a console.log b 1,2,3,4,5,6 1 2.利用陣列的過濾方式 let arr 1,2,3,4,5,3,5,6,2 let b arr.filter...

JS陣列去重的六種方法

一 利用es6 set去重 es6中最常用 function unique arr var arr 1,1,true true true,true,15,15,false,false,undefined,undefined,null,null,nan,nan,nan 0,0,a a console....