Maison >interface Web >js tutoriel >Code d'implémentation du remplissage zéro de l'écart JavaScript

Code d'implémentation du remplissage zéro de l'écart JavaScript

高洛峰
高洛峰original
2017-01-07 16:25:361365parcourir

Implémentation 1 :

/* 平淡无奇法 */ 
function pad(num, n) { 
var i = (num + "").length; 
while(i++ < n) num = "0" + num; 
return num; 
}

Le code ci-dessus est trop fade et ne reflète pas mon vrai niveau. Il y a donc la deuxième implémentation :

/* 神奇递归法 */ 
function pad2(num, n) { 
if ((num + "").length >= n) return num; 
return pad2("0" + num, n); 
}

La récursion magique peut amener mm à la regarder avec éloge et admiration à chaque fois ~~
Cependant, lorsque les maîtres s'affrontent, ce qui compte, c'est un mouvement fatal. . Le code ci-dessus prend en réalité deux lignes, ce qui est tout simplement insultant. Après y avoir réfléchi, une ligne de code magique m'est venue à l'esprit :

/* 奇淫技巧法 */ 
function pad3(num, n) { 
return (Array(n).join(0) + num).slice(-n); 
}

Cette fois mm m'a regardé avec admiration, hiahia~~~
=== Je ne suis pas un diviseur d'espace, Je suis Une très longue ligne de démarcation dans le temps. Après n années ===
Un jour, l'air d'automne était vif et mon cœur était détendu et heureux. Assis sous l'arbre de la Bodhi avec des amis, buvant du vin et jouant aux échecs.
Un ami a dit : BP, tu m'as fait du mal depuis que tu es parti. Ces codes magiques que tu as laissés ont fait tomber mes cheveux 3 ans plus tôt.
J'ai été choqué : comment puis-je dire cela ?
Un ami s'est retourné avec un air consterné sur le visage : vous souvenez-vous de cette fonction magique du pad3 ? Moins d’un an après votre départ, les affaires ont explosé. Il y a un bug dans pad3. Dans certains cas, les premiers chiffres du numéro seront coupés. Par exemple, pad3(123456, 5) renvoie 23456. Ce bug a été découvert par des pirates informatiques, ce qui a conduit à plusieurs incidents de phishing à grande échelle et l'entreprise a perdu des millions. À ce moment-là, mon patron m'a ordonné de trouver le bug dans un délai d'un jour, mais votre code magique m'a pris trois jours pour le localiser. En plus de pad3, il y a aussi une fonction magique xxoo9. A cette époque...
Mon vieil ami bavardait encore, et quand j'ai fini d'écouter le premier paragraphe, j'étais perdu. J'ai baissé la tête et j'ai réfléchi à la méthode d'écriture de pad3. Il y a effectivement un bug d'interception. C'est utilisé dans le système de trading...
Après avoir dit au revoir à mon vieil ami, j'avais hâte de le faire. récupérez le pad3 et xxoo9 et d'autres codes du cloud GoogleFace. Après les tests, j'ai été choqué :
tricky_code.html
pad3 avait non seulement des bugs d'interception de caractères, mais avait également des problèmes de performances...
Un féroce. lutte idéologique.
Dans la confusion, j'ai vu Tang Monk venir de loin avec un sourire :
Tout le monde se moque de mes paroles, mais le monde ne peut pas comprendre mon chemin.
Quand vous voulez résoudre cette confusion, la simplicité est la vraie connaissance.
Tang Monk a jeté un parchemin et a ri :

/* 质朴长存法 */ 
function pad(num, n) { 
var len = num.toString().length; 
while(len < n) { 
num = "0" + num; 
len++; 
} 
return num; 
}

En le regardant, j'ai aussi ri et je suis allé avec Tang Monk pour apprendre les écritures...
Remarque : j'ai toujours voulu écrire un tel article. Je me promenais dans 51js aujourd'hui et j'ai vu un post par hasard : Il n'y a pas assez de chiffres pour ajouter 0 devant, j'ai donc immédiatement eu l'idée de cet article. Concernant le remplissage nul, ma réaction étrange est return Array(n - ("" num).length 1).join(0) num (il y a aussi des bugs), qui est similaire à celle de Guoguo, mais compte tenu de la valeur de choc (Guoguo The le bug est plus caché), et enfin j'ai utilisé le code de Guoguo comme exemple. Quoi qu'il en soit, merci Guoguo.

Pour plus d'articles sur le code d'implémentation de remplissage zéro de JavaScript, veuillez faire attention au site Web PHP chinois !


Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn