2015-04-07 44 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? –

相关问题