2015-02-23 61 views
0

我在webkit瀏覽器中對數組進行排序時遇到了問題。在Firefox中排序工作得很好,但在Chrome或Safari瀏覽器中,它只排序我最後的if()語句。此功能 (的,如果條件進行測試和工作)在webkit瀏覽器中對數組進行排序問題

if(printCategory == printCategoryTour) 
    { 
     function compare (a, b) { 

     return b.tour_naechtigungen - a.tour_naechtigungen 

    }; 
     chartDataRegions.sort(compare); 
     pushValues(); 
    } 

:例如在這段代碼是排序僅此塊

function chartDataSortArray() 

{  

    arraySorted = []; 

    if(printCategory == printCategoryBev) 
    { 
     function compare (a, b) { 

     return b.bev - a.bev; 

     }; 
     chartDataRegions.sort(compare); 

     pushValues(); 
    } 
    if(printCategory == printCategoryWirt) 
    { 
     function compare (a, b) { 

     return b.wirt_unt_anzahl - a.wirt_unt_anzahl 

     }; 
     chartDataRegions.sort(compare); 
     pushValues();   
    } 
    if(printCategory == printCategoryMob) 
    { 
     function compare (a, b) { 

     return b.mob_einpendler - a.mob_einpendler 

     }; 
     chartDataRegions.sort(compare); 
     pushValues(); 
    } 
    if(printCategory == printCategoryTour) 
    { 
     function compare (a, b) { 

     return b.tour_naechtigungen - a.tour_naechtigungen 

     }; 
     chartDataRegions.sort(compare); 
     pushValues(); 
    } 

function pushValues() 
{ 
    for(i = 0; i<chartDataRegions.length; i++) 
{ 
    arraySorted.push(chartDataRegions[i]) 

} 
} 

嗯,我嘗試了2現在幾個小時,但我不明白它工作! 有沒有人發現這個問題?

+1

你可以創建一個jsfiddle顯示問題? – 2015-02-23 15:26:44

+1

在這裏你可以得到頁面的網址.. 如果你點擊導航按鈕,下方的圖表顯示排序的值!並且這個工作只在最後一個按鈕[link](http://weedmap.de) – Manuel 2015-02-23 15:29:39

+0

WeedMap.de! right ok – 2015-02-23 15:30:43

回答

1

設置比較功能一次! 它看起來更好,作品crossbrowser

function chartDataSortArray() 

{  

     arraySorted = []; 

      function compare (a, b) { 
       if(printCategory == printCategoryBev) 
        { 
         return b.bev - a.bev; 
        } 
       if(printCategory == printCategoryWirt) 
        { 
         return b.wirt_unt_anzahl - a.wirt_unt_anzahl; 
        } 
       if(printCategory == printCategoryMob) 
        { 
         return b.mob_einpendler - a.mob_einpendler 
        } 
       if(printCategory == printCategoryTour) 
        { 
         return b.tour_naechtigungen - a.tour_naechtigungen 
        } 
       }; 
      function pushValues() 
      { 
       for(i = 0; i<chartDataRegions.length; i++) 
        { 
         arraySorted.push(chartDataRegions[i]) 
        } 
      } 


    chartDataRegions.sort(compare); 

    pushValues(); 

} 
+1

不錯謝謝你! – Manuel 2015-02-23 19:36:23