8768 sujets

Développement web côté serveur, CMS

Bonjour je suis debutant sur phoneGap,

Je souhaite afficher mon répertoire en ordre alphabétique.
function listContacts(){
		var options = new ContactFindOptions();
		options.filter = "";
		options.multiple = true;
		var fields = ["displayName","phoneNumbers"];
		navigator.contacts.find(fields, onSuccess, onError, options);	
}

function onSuccess(contacts){
	var ul = document.getElementById('contacts-list');
	for (var i=0; i<6; i++){
	for (var j=0; j<contacts[i].phoneNumbers.length; j++) {
			
			//"+contacts[i].phoneNumbers[j].type+"
			
			var newLI = document.createElement('li');
			newLI.innerHTML = contacts[i].id+" "+contacts[i].name.formatted+"  "+contacts[i].phoneNumbers[j].value; 
			ul.appendChild(newLI);
		}
	}   
}


Avec ce code il affiche 5 numeros mais en fonction de l'ID or je veux en ordre alphabétique sur le nom.

Merci
Bonjour Jencal,

Merci pour l'intervention. Je connais la fonction mais je ne vois pas où appliquer cela parc eque j'ai l'impression que la fonction contact est vaste. Je veux qu'il trie sur le champ nom mais par défaut cela vient déjà trier en fonction de l'id. Comme un tableau des tableaux.
J'ai essayé avec ce code

function onSuccess(contacts){
	var ul = document.getElementById('contacts-list');
	var tab = [];
	var k = 0;
	//for (var i=0; i<contacts.length; i++){
         for (var i=0; i<6; i++){
		
		for (var j=0; j<contacts[i].phoneNumbers.length; j++) {

				var newLI = document.createElement('li');
				newLI.innerHTML = contacts[i].name.formatted+"  "+contacts[i].phoneNumbers[j].value;
				
			tab[k] = contacts[i].name.formatted+"|"+contacts[i].phoneNumbers[j].value;
			k++;
	}
	} 
	tab.sort();
	for (var i=0; i<tab.length; i++){
		var newLI = document.createElement('li');
		newLI.innerHTML = tab[i];
		ul.appendChild(newLI);
	}
}


Avec un tableau il trie mais un grand tableau de plus de 3000 données il bug.

J'aimerais savoir s'il est possible de trier directement depuis le champs nom de la valeur contact.
Modifié par Cordobuzz (01 Jul 2019 - 15:50)
var items = [
  { name: "Edward", value: 21 },
  { name: "Sharpe", value: 37 },
  { name: "And", value: 45 },
  { name: "The", value: -12 },
  { name: "Magnetic", value: 13 },
  { name: "Zeros", value: 37 }
];
items.sort((a, b) => {
  return a.name.localeCompare(b.name);
});

console.log(items)


A quoi sert ton options.filters ??
Modifié par pacsys (01 Jul 2019 - 16:07)
Merci Pacsys,

Comme Je disais tout à l'heure j'ai compris comment appliquer "sort" sur un tableau créer mais je bute pour l'appliquer à la fonction Contact du nom.
Puis-je avoir une aide avec contact (la fonction du repertoire)?
Meme ce code me génère une erreur

contacts.sort((a, b) => {
			  return a.name.localeCompare(b.name);
			});