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); |
Partager