<script type="text/javascript">
var arr = [1,2,3,4,5,6,7,8,1,2,3,4,5,12,13,14,15];
/*
js對象裏沒有重複的key,所以可以通過以下方法來解決數組去重
1.把數組轉換成對象
2.把值變成對象中的key
3.再把對象還原成數組
*/
//把數組轉換成對象
function toObject(arr){
var obj = {};
var j;
for(var i=0, j=arr.length; i<j; i++){
//把之變成對象中的key
obj[arr[i]] = true;
}
return obj;
}
//把對象還原成數組
function toKey(obj){
var a = [];
for(var arr in obj){
//hasOwnProperty:用於檢測給定的屬性在當前對象實例中(而不是原型中)是否存在
if (obj.hasOwnProperty(arr)) { //YUI底層代碼
a.push(arr);
}
}
return a;
}
//綜合方法
function toArr(newArr){
return toKey(toObject(newArr));
}
console.log(toArr(arr));
</script>
數組去重,簡短而有效的方法
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.