1.數組
// 數組去重 // 檢查是否有重複數據,有,刪除,沒有,過 function norepeat(arr){ // 先準備空數組 var sArr = []; // 拿到大數組中全部數據 for(var i=0;i<arr.length;i++){ // 依次檢測原來的空數組中是否包含大數組的數據,不包含,就放進去 if(!has(sArr,arr[i])){ sArr.push(arr[i]) } } return sArr; } var a = norepeat([1,2,3,4,4,4,5,6,7,6,5,4,3,2,1,1,1,1]) console.log(a) // 檢測數組中數據的功能 function has(arr,n){ for(var i=0;i<arr.length;i++){ if(arr[i] === n){ return true; } } return false; }
2. for of + includesspa
var arr =[1,2,3,3,21,4,4,6] var arr1 = []; for(let i of arr){ !arr1.includes(i)&& arr1.push(i) } console.log(arr1);
3. fillter + indexOfcode
var arr = [1, 2, 3, 3, 21, 4, 4, 6] var arr1= arr.filter(function(item,index){ return arr.indexOf(item) === index; }) console.log(arr1)
4. new Set()blog
var arr =[1,1,2,2,3,3,4,4,5,5]; var myset = new Set(arr); console.log(myset) var newArr =[]; for(var i of myset){ newArr.push(i) } console.log(newArr);
5.雙層for循環加spliceit
function unique(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; }
6.利用sort()方法io
function unique(arr) { 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; }