在學習過程中發現兩種基礎的數組去重的方法,雖說是兩種,其實只是把第一種方法的第二層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]