2015-04-07 49 views
1

這是我的代碼來自Android設備獲取聯繫人:如何使用phonegap從android設備中按字母順序訂購聯繫人?

function onDeviceReady() 
{ 
    var options = new ContactFindOptions(); 
    options.filter=""; 
    options.multiple=true; 
    var fields = ["*"]; 
    navigator.contacts.find(fields, onSuccess, onError, options); 
} 
function onSuccess(contacts) 
{ 
    alert('Total Contacts '+contacts.length); 
    for (var i = 0; i < contacts.length; i++) 
    { 
     if(contacts[i].phoneNumbers.length>0) 
     { 
      document.getElementById("demo").innerHTML+=contacts[i].displayName+"-"+ contacts[i].phoneNumbers[0].value+"<br/>"; 
     } 
    } 
} 

我能夠獲取的所有聯繫人,但我想他們按字母順序顯示。請幫幫我。我也嘗試了options.sort,但它不起作用。

回答

1

假設返回的contacts變量是一個對象數組,並且您想按displayName屬性進行排序。

創建一個比較功能:

function compare(a,b) { 
    if (a.displayName< b.displayName) 
    return -1; 
    if (a.displayName> b.displayName) 
    return 1; 
    return 0; 
} 

然後調用排序()傳遞在你的比較功能,迭代前陣:

contacts.sort(compare); 
+0

它的工作,但它顯示在聯繫人前面空這是保存在谷歌帳戶,就像說我有名字奈拉拉接觸,然後它顯示結果爲'nullNaira饒'..任何解決方案。 –

+0

@ N.R,是添加null還是已經存在於聯繫人對象中? – ezanker

+0

和從這些參數將要比較函數a和b? –

相關問題