Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Contribuez
Contribuez Proposez vos articles, cours, tutoriels, questions/réponses pour les FAQ, sources et autres ressources pour la rubrique Web ainsi que ses sous-rubriques.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 07/06/2011, 11h40   #1
Rédacteur
 
Avatar de danielhagnoul
 
Homme Daniel Hagnoul
Étudiant perpétuel
Inscription : février 2009
Messages : 3 221
Détails du profil
Informations personnelles :
Nom : Homme Daniel Hagnoul
Âge : 61
Localisation : Belgique

Informations professionnelles :
Activité : Étudiant perpétuel
Secteur : Enseignement

Informations forums :
Inscription : février 2009
Messages : 3 221
Points : 6 767
Points : 6 767
Par défaut Suppression des multiples dans un tableau (array) alphanumérique

Tri ascendant et suppression des multiples dans un tableau (array) contenant des éléments alphanumériques, avec prise en charge des caractères accentués.

Origine de la méthode de tri, voir : http://www.developpez.net/forums/d10...e/#post5723457

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
/*
 * SPaceFrog
 * [RegExp]remplacement / suppression de caractères accentués ou autres ...
 * "http://www.developpez.net/forums/d1018129/webmasters-developpement-web/contribuez/regexp-remplacement-suppression-caracteres-accentues-autres/"
 */
function replaceSpec(Texte){
	var TabSpec = {"à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","è":"e","é":"e","ê":"e","ë":"e","ç":"c","ì":"i","í":"i","î":"i","ï":"i","ù":"u","ú":"u","û":"u","ü":"u","ÿ":"y","ñ":"n","-":" ","_":" "},
		reg=/[àáâãäåòóôõöøèéêëçìíîïùúûüÿñ_-]/gi;
 
	return Texte.replace(reg, function(){
		return TabSpec[arguments[0].toLowerCase()];
	}).toLowerCase();
}
 
var tab0 = [250, "échangeur", 9, "bonjour", "25", "échangeur", "bonjour", 25, "échangiste", "9"];
var tab1 = ["9", 9, 5, "3", 6, "1", 5, 3, 7, 8, 9, "3", 4, 6, "2", 1, "9", 8, 5, 8, 9, 6, 1, "2"];
var tab2 = [2, "25", 3, 25, "25", 5, 60, "25", 200, 60, "25"];
 
function dvjhUnique(tab){
	tab.sort(function(a, b){
		var x = parseInt(a, 10),
			y = parseInt(b, 10),
			c1 = replaceSpec(String(a)),
			c2 = replaceSpec(String(b));
 
		if (isNaN(x) || isNaN(y)){
			if (c1 > c2){
				return 1;
			} else if(c1 < c2){
				return -1;
			} else {
				return 0;
			}
		} else {
			return(x - y);
		}
	});
 
	var i = tab.length;
 
	while(i-- > 1){
		if (tab[i] == tab[i - 1]){
			tab.splice(i, 1);
		}
	};
}
 
dvjhUnique(tab0);
console.log("unique", tab0);
 
dvjhUnique(tab1);
console.log("unique", tab1);
 
dvjhUnique(tab2);
console.log("unique", tab2);
__________________

FAQ jQuery

Mon cahier d’exercices sur jQuery & Co

Si un message vous a aidé ou vous semble pertinent, votez pour lui !
danielhagnoul est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h30.


 
 
 
 
Partenaires

Hébergement Web