Phonegap联系人排序顺序

时间:2014-07-16 12:58:15

标签: sorting cordova contacts

我正在使用来自phonegap api(http://docs.phonegap.com/en/3.3.0/cordova_contacts_contacts.md.html

的代码从设备中获取所有联系人

我正在尝试按字母顺序排序联系人。这里已经有一些问题,但它们没有完整而全面的答案。

有人可以帮忙吗?

由于

3 个答案:

答案 0 :(得分:0)

试试这个

var cSort = function(a, b) 
{
  aName = a.lastName + ' ' + a.firstName;
  bName = b.lastName + ' ' + b.firstName;
  return aName < bName ? -1 : (aName == bName ? 0 : 1);
 };

function contactSuccess(contacts) {
 contacts = contacts.sort(cSort);
  ...
 };

答案 1 :(得分:0)

cSort函数需要引用correct object(例如a.name.familyName),如下所示:

function onSuccess(contacts) {
    var cSort = function(a, b) {
        aName = a.name.familyName + ' ' + a.name.givenName;
        bName = b.name.familyName + ' ' + a.name.givenName;
        return aName < bName ? -1 : (aName == bName ? 0 : 1);
    };
     contacts = contacts.sort(cSort);  
        for (var i = 0; i < contacts.length; i++) {
          var contact = contacts[i];                          
          $scope.phoneContacts.push(contact);
        }
};

答案 2 :(得分:0)

这是一种有效的方法(我正在使用)。 1. contact.name.formatted属性更可靠。 2.联系人姓名分组在一起,无论信件的情况如何

var cSort=function(a,b){ 
        var an=a.name.formatted.toUpperCase();
        var bn=b.name.formatted.toUpperCase();
        return (an<bn)?-1:(an==bn)?0:1;
    };

function contactSuccess(contacts) {
  contacts = contacts.sort(cSort);
  ...
};