//法1/*思路:
1.構建乙個新的陣列存放結果
2.for
迴圈中每次從原陣列中取出乙個元素,用這個元素迴圈與結果陣列對比
3.若結果陣列中沒有該元素,則存到結果陣列中
*/array.prototype.unique1 = function()
}if(!repeat)
}return res;
}var arr = [1
, 'a'
, 'a'
, 'b'
, 'd'
, 'e'
, 'e', 1
, 0];
console.log(arr.unique1());//法
2/*思路:1.
先將原陣列進行排序
2.檢查原陣列中的第
i個元素 與 結果陣列中的最後乙個元素是否相同,因為已經排序,所以重複元素會在相鄰位置
3.如果不相同,則將該元素存入結果陣列中
【因為 去重前陣列是排序的,所以去重後的陣列也是排序了的】
*/array.prototype.unique2 = function()
}return res;
}var arr = [1
, 'a'
, 'a'
, 'b'
, 'd'
, 'e'
, 'e', 1
, 0]
console.log(arr.unique2());//法
3/*思路:1.
建立乙個新的陣列存放結果
2.建立乙個空物件
3.每次從原陣列中取出乙個元素,然後到物件中去訪問這個屬性,如果能訪問到值,則說明重複。
*/array.prototype.unique3 = function();
for(var i = 0
; i < this.length; i++)
}return res;
}var arr = [112
,112,34
,'你好'
,112
,112,34
,'你好'
,'str'
,'str1'];
console.log(arr.unique3());//法
4/*思路:利用
array.prototype.indexof
,但是不支援
ie-8
,所以需要對
indexof
處理一下
*//*
改造下indexof,
支援ie6-8*/
var indexof = .indexof ?
function(arr, item) :
function
indexof(arr, item)
}return -1;}
function
unique(arr)
}return ret;
}
JS陣列去重,物件去重
例項1根據indexof去重,indexof的好處就是返回的是首次出現的位置,這樣後面即使出現的值一樣,也只能返回第一次出現的索引,當然這個只適用於簡單的陣列 物件陣列去重 const objarr const obj const newobjarr for let i 0 i objarr.len...
js 陣列去重
function unique arr if isrepeated return result 建立乙個新的陣列,迴圈原有的陣列,每取乙個數就迴圈判斷新建的陣列中是否有和這個相等的值,沒有則插入。方法簡單,但是有雙重迴圈,陣列大了之後效率低。所以能一次迴圈解決最好。var str new array...
JS 陣列去重
我總共想出了三種演算法來實現這個目的 array.prototype.unique1 function return n array.prototype.unique2 function r n為hash表,r為臨時陣列 for var i 0 i this.length i 遍歷當前陣列 retu...