Voir le flux RSS

danielhagnoul

Tri alphanumérique et fréquence des caractères d'un texte.

Noter ce billet
par , 06/03/2016 à 21h54 (448 Affichages)
Méthode de tri, voir : Exemples d'utilisation de ECMAScript Internationalization API

On traite un texte généré par Lorem ipsum générateur avec accents et caractères spéciaux français.

Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
let
  charFrequency = function( aSortTable ){
    let
      nb = aSortTable.length - 1,
      tri = [],
      tmp = '',
      n = 0;
 
    for ( let [ i, item ] of aSortTable.entries() ){
      if ( item === tmp ) {
        ++n;
      } else {
        if ( tmp != '' && n > 0 ){
          tri.push( [ tmp, n ] );
          tmp = '';
          n = 0;
        }
 
        tmp = item;
        ++n
 
        if ( i === nb  ) {
          tri.push( [ tmp, n ] );
        }
      }
    }
 
    return tri;
  },
  sortTable = function( table, ordre, bcp47String ){
    let
      bcpStr = bcp47String || "fr-BE",
      ctor = new Intl.Collator( bcpStr, { "numeric" : true } ),
      n = ( ordre === "desc" ) ? ( -1 ) : ( 1 );
 
    table.sort( function( a, b ){
        return n * ctor.compare( a, b );
    });
 
    return table;
  },
  str = `Sociosqu himenaéos égét à prétium léo orci velit fringilla venesatis fermentum aliquam liçlà
  bibendum cœeur etiam, témpor nisï quém maecenas praesent etiam dictumst netus aptent tempus semper
  in eget eros èiam, tortor lorém torquent cél vehiculâ sènèctus ût élémentum çunc quisquées morbié
  éros nunc curae dapidûs. Classe à ac eu susîcpit nostra primis.
 
  Tellus fermentum ét c'est-a-dire ullamcorpér donéc quisqué niçl per blandit hendrerit, nostré rûtrum
  ultrûcéas praesent pésuéré éléfantid éuismod leo mauris, dicûm ôdiot nûllam mollis nisï metus nombre.
  Dicum curabitur habitant aliquet torétoré massè £at aliquét velit, arcu augue cél sapien. Nibh amèt
  lacinia sociosqu vehicula Frînglilia lacus venesatis interdum séd molestie tortor fancibüs rûtrum sit,
  variûs libéro lobortïs feugiat rutrum curae nunc quisquées ullamcorper ? hac molestié egestas primis,
  éléfantid metus velit netus potentié mattisé l'a commodo ïd fancibüs vivérra curàé magna classé.
 
  Suscipit curàbitur integer tortor pélléntésque donéc odio non èiam platéa maécènas purus, pérès feugiat
  nequé varius incéptos tristiqué pulvîar accumasa sempér "sélecrum" niçl, quîs habitassé pretium sém.
  Sodales séd sit l'at cél amèt égét, scéléréo sem convallis nostré platéa variûs. Tempes éuismod commodoé
  éléfantid grâvida molestié vitaé, eros pellentesque interdum cœeur ïd, lobortis scelerisque sènèctus grâvida.`,
  tabChar = sortTable( str.toLowerCase().replace( /[^A-Za-z0-9àáâãäåæçèéêëìíîïðñòóôõöøœšÞùúûüýÿ]/g, '').split('') ),
  tabFrequency = charFrequency( tabChar );
 
console.log( str );
 
for ( let item of tabFrequency ){
  console.log( item[0], item[1] );
};
 
/*
Sociosqu himenaéos égét à prétium léo orci velit fringilla venesatis fermentum aliquam liçlà
  bibendum cœeur etiam, témpor nisï quém maecenas praesent etiam dictumst netus aptent tempus semper
  in eget eros èiam, tortor lorém torquent cél vehiculâ sènèctus ût élémentum çunc quisquées morbié
  éros nunc curae dapidûs. Classe à ac eu susîcpit nostra primis.
 
  Tellus fermentum ét c'est-a-dire ullamcorpér donéc quisqué niçl per blandit hendrerit, nostré rûtrum
  ultrûcéas praesent pésuéré éléfantid éuismod leo mauris, dicûm ôdiot nûllam mollis nisï metus nombre.
  Dicum curabitur habitant aliquet torétoré massè £at aliquét velit, arcu augue cél sapien. Nibh amèt
  lacinia sociosqu vehicula Frînglilia lacus venesatis interdum séd molestie tortor fancibüs rûtrum sit,
  variûs libéro lobortïs feugiat rutrum curae nunc quisquées ullamcorper ? hac molestié egestas primis,
  éléfantid metus velit netus potentié mattisé l'a commodo ïd fancibüs vivérra curàé magna classé.
 
  Suscipit curàbitur integer tortor pélléntésque donéc odio non èiam platéa maécènas purus, pérès feugiat
  nequé varius incéptos tristiqué pulvîar accumasa sempér "sélecrum" niçl, quîs habitassé pretium sém.
  Sodales séd sit l'at cél amèt égét, scéléréo sem convallis nostré platéa variûs. Tempes éuismod commodoé
  éléfantid grâvida molestié vitaé, eros pellentesque interdum cœeur ïd, lobortis scelerisque sènèctus grâvida.
 
a 81
à 5
â 3
b 15
c 51
ç 4
d 29
e 86
é 70
è 11
f 11
g 13
h 8
i 94
î 4
ï 5
l 63
m 61
n 59
o 57
ô 1
œ 2
p 29
q 19
r 79
s 98
t 95
u 77
û 9
ü 2
*/

Envoyer le billet « Tri alphanumérique et fréquence des caractères d'un texte. » dans le blog Viadeo Envoyer le billet « Tri alphanumérique et fréquence des caractères d'un texte. » dans le blog Twitter Envoyer le billet « Tri alphanumérique et fréquence des caractères d'un texte. » dans le blog Google Envoyer le billet « Tri alphanumérique et fréquence des caractères d'un texte. » dans le blog Facebook Envoyer le billet « Tri alphanumérique et fréquence des caractères d'un texte. » dans le blog Digg Envoyer le billet « Tri alphanumérique et fréquence des caractères d'un texte. » dans le blog Delicious Envoyer le billet « Tri alphanumérique et fréquence des caractères d'un texte. » dans le blog MySpace Envoyer le billet « Tri alphanumérique et fréquence des caractères d'un texte. » dans le blog Yahoo

Mis à jour 24/04/2016 à 20h36 par LittleWhite (Coloration code)

Catégories
Javascript , Développement Web

Commentaires