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 ceur 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 ceur ï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 ceur 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 ceur ï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
*/ |