JS(JavaScript)中兩種最基礎的數組去重算法

在學習過程中發現兩種基礎的數組去重的方法,雖說是兩種,其實只是把第一種方法的第二層for循環中改變了一下條件表達式和把遞增改成遞減。



方法一: 重復的元素在最后重復的位置顯示


? ? ? ? var arr = [2, 0, 6, 1, 77, 0, 52, 0, 25, 7];

? ? ? ? var newArr = [];

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

? ? ? ? ? ? // 創建標記變量

? ? ? ? ? ? var flag = true;

? ? ? ? ? ? // 后面元素與前面元素重復的話,

? ? ? ? ? ? // 前面重復元素不會添加到新數組中

? ? ? ? ? ? for (var j = i + 1; j < arr.length ; j++) {

? ? ? ? ? ? ? ? if (i == j) {=

? ? ? ? ? ? ? ? ? ? // 位置重復不進行判斷

? ? ? ? ? ? ? ? ? ? // 直接進行下一個位置的判斷

? ? ? ? ? ? ? ? ? ? continue;

? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? //判斷是否重復

? ? ? ? ? ? ? ? if (arr1[i] == arr1[j]) {

? ? ? ? ? ? ? ? ? ? // 重復了,把flag標記為false

? ? ? ? ? ? ? ? ? ? flag = false;

? ? ? ? ? ? ? ? ? ? // 已經判斷重復了,無需再判斷后續元素

? ? ? ? ? ? ? ? ? ? // 直接break,跳出這一層循環

? ? ? ? ? ? ? ? ? ? break;

? ? ? ? ? ? ? ? }

? ? ? ? ? ? }

? ? ? ? ? ? // flag未標記為false(即遍歷后未發現此時的arr[i]

? ? ? ? ? ? // 是不與其他數組元素重復的

? ? ? ? ? ? if (flag) {

? ? ? ? ? ? ? ? // 添加不重復的數組元素

? ? ? ? ? ? ? ? newArr1[newArr1.length] = arr1[i];

? ? ? ? ? ? }

? ? ? ? }

? ? ? ? console.log(newArr1);



原數組為: [2, 0, 6, 1, 77, 0, 52, 0, 25, 7]

輸出結果為: [2, 6, 1, 77, 52, 0, 25, 7]



方法二: 重復的元素在第一次重復的位置顯示


? ? ? ? var arr1 = [2, 0, 6, 1, 77, 0, 52, 0, 25, 7];

? ? ? ? var newArr1 = [];

? ? ? ? for (var i = 0; i < arr1.length; i++) {

? ? ? ? ? ? // 創建標記變量

? ? ? ? ? ? var flag = true;

? ? ? ? ? ? // 后面元素與前面元素重復的話,

? ? ? ? ? ? //后面重復元素不會添加到新數組中

? ? ? ? ? ? for (var j = i + 1; 0 <= j ; j--) {

? ? ? ? ? ? ? ? if (i == j) {

? ? ? ? ? ? ? ? ? ? // 位置重復不進行判斷

? ? ? ? ? ? ? ? ? ? // 直接進行下一個位置的判斷

? ? ? ? ? ? ? ? ? ? continue;

? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? //判斷是否重復

? ? ? ? ? ? ? ? if (arr1[i] == arr1[j]) {

? ? ? ? ? ? ? ? ? ? // 重復了,把flag標記為false

? ? ? ? ? ? ? ? ? ? flag = false;

? ? ? ? ? ? ? ? ? ? // 已經判斷重復了,無需再判斷后續元素

? ? ? ? ? ? ? ? ? ? // 直接break,跳出這一層循環

? ? ? ? ? ? ? ? ? ? break;

? ? ? ? ? ? ? ? }

? ? ? ? ? ? }

? ? ? ? ? ? // flag未標記為false(即遍歷后未發現此時的arr[i]是不與其他數組元素重復的

? ? ? ? ? ? if (flag) {

? ? ? ? ? ? ? ? // 添加不重復的數組元素

? ? ? ? ? ? ? ? newArr1[newArr1.length] = arr1[i];

? ? ? ? ? ? }

? ? ? ? }

? ? ? ? console.log(newArr1);



原數組為: [2, 0, 6, 1, 77, 0, 52, 0, 25, 7]

輸出結果為: [2, 0, 6, 1, 77, 52, 25, 7]



?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容