1. 程式人生 > >陣列迴圈遍歷優化和陣列去重演算法

陣列迴圈遍歷優化和陣列去重演算法

陣列去重演算法:
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裝置 減少了迴圈次數,提升陣列處理能力