我正在使用来自phonegap api(http://docs.phonegap.com/en/3.3.0/cordova_contacts_contacts.md.html)
的代码从设备中获取所有联系人我正在尝试按字母顺序排序联系人。这里已经有一些问题,但它们没有完整而全面的答案。
有人可以帮忙吗?
由于
答案 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);
...
};