
Envoyé par
Kaamo
Excellent Sylvain ! J'avais pas trouvé cette astuce

Par contre avec le forEach tu gagnes 1 caractère

En 92 :
1 2 3
| (function parseNumbers(s){
a='';s.split(' ').forEach(function(x){a+='zudtqcsshn'.indexOf(x[0])+!!(x[2]=='p')});return a
})("un deux trois quatre cinq six sept huit neuf zero"); |
Pas mal cette méthode, je n'aurai pas cru qu'on pourrait faire aussi compact en faisant une verif sur un second caractère !
On peut encore gagner 5 caractères en utilisant l'opérateur comma (,), ce qui donne en 87 caractères :
return s.split(' ').forEach(function(x){a+='zudtqcsshn'.indexOf(x[0])+!!(x[2]=='p')}),a
Et si on s'autorisait la syntaxe ES6 (
méchant chrome) on arrive même à 77 caractères :
1 2 3
| (function parseNumbers(s){
return s.split(' ').forEach(x=>a+='zudtqcsshn'.indexOf(x[0])+!!(x[2]=='p')),a
})("un deux trois quatre cinq six sept huit neuf zero six six sept"); |
Partager