1.利用Set結構和...擴展運算符es6
window.onload = function(){ var arr = [1,2,3,4,4,5,6,7,3,3,3] function unique(arr) { // Set結構的成員都是惟一的,Set函數能夠接受一個數組做爲參數,用來初始化(高性能) let set = [...new Set(arr)]
} unique(arr) }
2.利用Set結構和Array.from數組
window.onload = function(){ var arr = [1,2,3,4,4,5,6,7,3,3,3] function unique(arr) { // 利用Array.from將set結構轉化成真正的數組 let set = Array.from(new Set(arr)) } unique(arr) }
3.利用 Array.filter()方法的過濾方法,將數組進行過濾,篩選條件是數組下標與檢索下標一致。函數
window.onload = function(){ var arr = [1,2,3,4,4,5,6,7,3,3,3] function unique(arr) { let set = arr.filter((item,index) =>{ return arr.indexOf(item) === index } unique(arr) }
window.onload = function(){ var arr = [1,2,3,4,4,5,6,7,3,3,3] function unique(arr) { // 新建一個結果數組、一個存儲標誌的對象hash,遍歷數組,對象中arr[i]對應的值爲ture的時候不重複添加; var result = [] , hash = {} ; // 定義新數組result 和hash. for ( let elem of arr ) { // 遍歷前四個數時,hash表中沒有這四個值,因此if語句成立,將數據push到result中,令這些表中的數都爲true。 if ( ! hash [ elem ] ) { // 當遍歷到第二個1的時候,以前已經令hash [ elem ] = true , 因此if語句就不執行了,就不會重複了 result.push ( elem ); hash [ elem ] = true; // 做爲一個是否在數組中存在的標誌 } } console.log(result) //[1, 2, 3, 4, 5, 6, 7] } unique(arr) }
window.onload = function(){ var arr = [1,2,3,4,4,5,6,7,3,3,3] function unique(arr) { let set = [] for(let x of arr) { if (set.indexOf(x) === -1) { set.push(x) } } console.log(set) //[1, 2, 3, 4, 5, 6, 7] } unique(arr) }
window.onload = function(){ var arr = [1,2,3,4,4,5,6,7,3,3,3] function unique(arr) { let set = [] for(let x of arr) { if (!set.includes(x)) { set.push(x) } } console.log(set) //[1, 2, 3, 4, 5, 6, 7] } unique(arr) }
window.onload = function(){ var arr = [1,2,3,4,4,5,6,7,3,3,3] function unique(arr) { //先給數組排序,循環比較先後兩個是否相等,若是相等就刪除索引是i的這個,而後i-- arr = arr.sort(); for (let i = 0; i < arr.length; i++) { if (arr[i] === arr[i+1]) { arr.splice(i,1); i--; } } console.log(arr) //[1, 2, 3, 4, 5, 6, 7] } unique(arr) }
window.onload = function(){ var arr = [1,2,3,4,4,5,6,7,3,3,3] function unique(arr) { 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-- } } } console.log(arr) //[1, 2, 3, 4, 5, 6, 7] } unique(arr) }