實現思路:新建一新陣列,遍歷傳入陣列,值不在新陣列就加入該新陣列中;注意點:判斷值是否在陣列的方法「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...