陣列迴圈遍歷優化和陣列去重演算法
阿新 • • 發佈:2019-01-23
陣列去重演算法:
array.sort(function(a,b){
return a<b ? 1:(a > b ? -1 :0);
});
newArray=[array[0]];
for(var i=0,len =array.length;i<len;i++){
if(array[i]!==newArray[newArray.length-1]){
newArray.push(array[i]);
}
}
演算法時間複雜度O(n),避免雙重迴圈;
陣列遍歷優化演算法:
var nLeft=array.length % 8 ,//餘數
nRounds = array.length / 8,//迴圈次數
i=0;
while(nLeft--){
process(array[i++]);
}
while(nRounds--) {
process(array[i++]);
process(array[i++]);
process(array[i++]);
process(array[i++]);
process(array[i++]);
process(array[i++]);
process(array[i++]);
process(array[i++]);
}
利用Duff Device裝置 減少了迴圈次數,提升陣列處理能力