準備測試**:
const arr1 = array.from (new array (100000), (item, index) =>);一:filter + indexofconst arr2 = array.from (new array (50000), (item, index) =>);
console.log ('開始測試');
const start = new
date().gettime();
distinct(arr1, arr2); // 去重方法
const end = new
date ().gettime ();
console.log ('測試結束');
console.log ('測試時間' + (end - start) / 1000 + 's');
function效果:時間11sdistinct(arr1, arr2) );
}
二:雙重迴圈,刪除(splice)重複項
function效果:22sdistinct(a, b)
}}
return
arr}
三、includes + push
function效果:11sdistinct(arr1, arr2)
return
result;
}
四、先排序(sort),然後比較臨近2個
function效果:0.03sdistinct(arr1, arr2) );
const result =;
for (let i = 0, len = arr.length; i < len; i++)
return
result;
}
四、使用set
function效果:0.04sdistinct(arr1, arr2)
五、 for迴圈配合物件使用,然後push, 優缺點,obj中不區分資料型別,導致number和string 值相同會被過濾掉
function效果:0.03sdistinct(arr1, arr2) ;
const result =;
for(let i of arr)
} //for (let i = 0; i < len; i++)//}
return
result;
}
六、reduce
function效果:110sdistinct(arr1, arr2)
else
}, );
}
準備資料**
console.log ('開始測試');一、雙重 for迴圈const start = new
date().gettime();
const arr =[
, ,,],
},, ,
, ,
];distinct(arr);
const end = new
date().gettime();
console.log('測試結束');
console.log('測試時間' + (end - start) / 1000 + 's');
二、for of 配合obj
三、reduce+obj 和方式二類似
functiondistinct(arr) ; //
標識是否存在重複flag
hive 列表去重 Hive 資料去重
實現資料去重有兩種方式 distinct 和 group by 1.distinct消除重複行 distinct支援單列 多列的去重方式。單列去重的方式簡明易懂,即相同值只保留1個。多列的去重則是根據指定的去重的列資訊來進行,即只有所有指定的列資訊都相同,才會被認為是重複的資訊。1 作用於單列 se...
SQL Server 去重處理
asbegin set nocount on 不返回計數,提高處理速度 set xact abort on 如果出錯,會將transcation設定為uncommittable狀態 begin tran declare fn varchar 200 檔名 declare rn int 記錄號 dec...
陣列去重,效率比較
let arr1 array.from new array 100000 x,index let arr2 array.from new array 50000 x,index 寫一下方法中的去重方法 function distinct1 let start new date gettime con...