陣列去重的幾種方法

2021-10-06 18:01:51 字數 1232 閱讀 9261

實現思路:新建一新陣列,遍歷傳入陣列,值不在新陣列就加入該新陣列中;注意點:判斷值是否在陣列的方法「indexof」是ecmascript5 方法,ie8以下不支援,需多寫一些相容低版本瀏覽器**:

// 最簡單陣列去重法

function unique1(array)

}return n;

}

實現思路:新建一js物件以及新陣列,遍歷傳入陣列時,判斷值是否為js物件的鍵,不是的話給物件新增該鍵並放入新陣列。注意點: 判斷是否為js物件鍵時,會自動對傳入的鍵執行「tostring()」,不同的鍵可能會被誤認為一樣;例如: a[1]、a["1"] 。解決上述問題還是得呼叫「indexof」。

// 速度最快, 佔空間最多(空間換時間)

function unique2(array), r = , len = array.length, val, type;

for (var i = 0; i < array.length; i++)  else if (n[val].indexof(type) < 0) 

}return r;

}

實現思路:如果當前陣列的第i項在當前陣列中第一次出現的位置不是i,那麼表示第i項是重複的,忽略掉。否則存入結果陣列。

function unique3(array)
}

return n;

}

實現思路:給傳入陣列排序,排序後相同值相鄰,然後遍歷時新陣列只加入不與前一值重複的值。

// 將相同的值相鄰,然後遍歷去除重複值

function unique4(array)

}  return re;

}

// 思路:獲取沒重複的最右一值放入新陣列

function unique5(array)     

r.push(array[i]);   

}  return r;

}這裡**可以直接拿走使用的,例如:

arr=[54,54,77,8,5,52,56,5,2,4,5,3,26];

console.log(unique1(arr));

陣列去重的幾種方法

記錄一些陣列去重的方法,如果有錯誤的地方,還望指正 1.利用es6中的set 去重特性 const arr 1,2,3,6,8,2,9,5,6,4,9 function uniq arr const resultarr1 uniq arr console.log resultarr1 2.利用inc...

陣列去重的幾種方法

function unique arr let arr 1,2,3,1,2,2,a b c c a 4 4,false,false,undefined,undefined,null,null nan,nan,console.log unique arr 1,2,3,a b c 4,false,und...

js 陣列去重的幾種方法

問題 隨機10個不相同的數 數值範圍11 25之間的 並且存放到陣列中 函式 隨機生成乙個從min到max的數 function randfn min,max 方法1 遍歷已存入的數和當前隨機的數比較,引入開關判斷是否存放 var arr for var i 0 i 10 i if flag con...