2011-05-06 40 views
0

http://www.devcurry.com/2010/05/sorting-json-array.html問過的Json排序

我碰到這個文章來了,我想這篇文章在幾explantions。

function SortByName(x,y) {  
     return ((x.Name == y.Name) ? 0 : ((x.Name > y.Name) ? 1 : -1)); 
    } 

arr.sort(SortByName); 
  1. 什麼將是arr.sort的arguements(X,Y)。什麼將從JSON對象傳遞給函數。

  2. SortByName函數返回什麼?我不明白整條線。任何人都可以給我更多的細節。

+1

雖然文章稱如此,還有在此代碼沒有JSON。只是一個JavaScript對象數組。另見http://benalman.com/news/2010/03/theres-no-such-thing-as-a-json/ – 2011-05-06 10:09:32

回答

2

什麼將是arr.sort的arguements(X,Y)。

數組中的兩個值,目前正在比較

什麼是SortByName函數返回

0,-1或1,這取決於所述兩個名稱屬性是大。

你或許應該讀出的documentation for sort

1

sort的參數是一個將與所述陣列的兩種不同元素多次調用函數,並且將返回0,如果元素是相等的,1,如果X> Y如果y> x則爲-1。

return ((x.Name == y.Name) ? 0 : ((x.Name > y.Name) ? 1 : -1)); 

是非常相同:

if (x.Name == y.Name) 
    return 0; 
else 
    if (x.Name > y.Name) 
     return 1; 
    else 
     return -1;