Vielzahl von Kodierung und Codierung

Dienstag, 14. Oktober, 2008

Jemand macht geltend, dass die Programmierung ist eine Kunst, und letztlich kann ich nur zustimmen vor allem, wenn Lösungen gefunden werden sehr unterschiedlich für das gleiche Problem. Um zu verstehen, wie wahr das ist wie eine identische müssen in medisimo Sprache (Javascript) gelöst werden können, mit ganz unterschiedlichen Ansätzen und Original.

Linke Null-Pad

Eine Reihe, aber die Rede ist auch gültig für eine beliebige Zeichenfolge, wie z. B. 123 ausgefüllt werden kann auf der linken Seite - zu ziehen - mit einer Reihe von Nullen, zum Beispiel: 00123 Diese Notwendigkeit ist bei mehreren Gelegenheiten und ist nützlich für an - oder zeigen - eine Reihe sauber, implizit hervorgeht, ihren maximalen Wert. In dem Video, zum Beispiel die klassische Partitur (der Partitur) ist oft mit 001234 bei den meisten es um 999999 Hier ist, wie das Problem wurde gelöst, indem auch viele Entwickler:

JavaScript:
  1. / **
  2. * Links String Pad
  3. *
  4. * @ Von http://snipplr.com/view/8423/left-pad-string/
  5. * Autor @ web-http: / / www.mechanicmatt.com/
  6. *
  7. * @ Param num - zu füllen Striga
  8. * @ Param totalChars - Gesamtzahl der Zeichen, einschließlich der "Nullen"
  9. * @ Param padWidth - Zeichen verwendet zu füllen, standardmäßig "0"
  10. * /
  11. num, totalChars, padWith ) { leadingZeros Funktion (num, totalChars, padWith) (
  12. num num + = "";
  13. ? padWith = (padWith)? padWith: "0";
  14. num. length <totalChars ) { if (Länge interne Nummer <totalChars) (
  15. num. length <totalChars ) { while (Länge interne Nummer <totalChars) (
  16. padWith + num = num;
  17. )
  18. { } Else ())
  19. num. length > totalChars ) { //if padWith was a multiple character string and num was overpadded if (Länge interne Referenznummer> totalChars) (/ / if padWith wurde ein Vielfaches Zeichenkette und num wurde overpadded
  20. num. length - totalChars ) , totalChars ) ; = Num num. Substring ((interne Referenznummer Länge - totalChars), totalChars);
  21. { } Else ())
  22. Rückkehr NUM;
  23. )
  24. leadingZeros ( "asdf" , 10 , "0" ) ) ; alert (leadingZeros ( "asdf", 10, "0"));

Diese Lösung ist äußerst artikulieren, sondern können eine unbestimmte Anzahl von 0 Anzahl num auch die Wahl der Schrift, die durch padWidth anstelle des 0
Definitiv Original, aber diese Lösung:

JavaScript:
  1. / **
  2. * String_pad
  3. *
  4. * @ Von http://snipplr.com/view/700/stringpad/
  5. * @ Autor http://d.hatena.ne.jp/brazil/20060721/1153489937
  6. *
  7. * @ Param str - zu füllen Striga
  8. * @ Param len - Gesamtzahl der Zeichen, einschließlich der "Nullen"
  9. * @ Param ch - Zeichen verwendet werden, um
  10. * /
  11. str, len, ch ) { return new Array ( len- ( '' +str ) . length + 1 ) . join ( ch ) + str } Pad-Funktion (str, len, CH) (Hin-und Rückfahrt new Array (len-(''+ str). Länge + 1). beitreten (CH) + str)
  12. pad ( 56 , 4 , '0' ) ) ; // 0056 alert (pad (56, 4,'0 ')); / / 0056

Gleichen Ergebnis, mit einer völlig anderen Ansatz. Auch hier haben wir die Möglichkeit zu entscheiden, die Anzahl der Zeichen Polsterung durch den Parameter len und die Schrift, die von ch Schlägt fehl, den Standard zu verwenden, die in der vorherigen Funktion.
Was verwende ich anstelle ...:

JavaScript:
  1. / **
  2. * String_pad
  3. *
  4. * @ Autor Giovambattista Fazioli
  5. * @ Web http://www.undolog.com
  6. *
  7. * @ Param s - zu füllen Striga
  8. * @ Param l - Ein String, dass die Zeichen ist, dass die Länge
  9. * Wie "0000" Zeichen = "0" Länge 4
  10. * /
  11. s,l ) { return ( l. substr ( 0 , ( l. length -s. length ) ) +s ) ; } padding-Funktion (s, l) (Hin-und Rückfahrt (l. substr (0, (l-s Länge. Länge)) + s);)
  12. padding ( '123' , '0000' ) ) ; alert (padding ('123 ','0000'));

Wenn Sie weitere interessante Lösungen wenden Sie sich bitte Kommentar : D

Verwandte Post

16 Kommentare an: "Sorten der Kodierung und Verschlüsselung"

  1. getAvatar 1,0 Dienstag, 14. Oktober 2008 bei 14:49
    Napolux sagte:

    Linie 12 von Ihrer Funktion vorstellen sollten:

      alert (padding ('123 ','0000')); 
    
    Antwort Quote
  2. getAvatar 1,0 Dienstag, 14. Oktober 2008 bei 14:53
    Giovambattista Fazioli sagte:

    @ Napolux:

    Linie 12 von Ihrer Funktion vorstellen sollte: alert (padding ('123 ','0000'));

    Richtig! : D

    Antwort Quote
  3. getAvatar 1,0 Mittwoch, 15. Oktober 2008 bei 10:07
    Francesco Gavello sagte:

    Interessant, die 3 verschiedene Ansätze! :)

    Antwort Quote
  4. getAvatar 1,0 Montag, 20. Oktober 2008 um 10:14
    Camelize, CamelCase | Undolog.com sagte:

    [...] Bereits in der Post Vielzahl von Kodierung und Codierung Ansätze, dass ein Entwickler Mai haben, um Probleme zu lösen sind unterschiedlich und [...]

  5. getAvatar 1,0 Donnerstag, 06. November, 2008 um 00:10
    unwiredbrain sagte:

    Getestet habe ich den Zeitpunkt der alle drei Methoden. Die erste ist die vorhersehbar langsamer, während der dritte ist verdammt schnell.

    Ich startete 100.000 mal die einzelnen Methoden, um ihm die Polsterung zu zehn Ziffern einer vier-stelligen Zahl, und ich haben von Zeit zu Zeit die Ausführungszeit mit einem banal

      var Timings = []; 
      var time = 0; 
    
      für (...) ( 
          time = (neu Datum). getTime (); 
          robaDaEseguire (); 
          Timing [i] = ((neues Datum). getTime () - Zeit); 
      ) 
    

    Am Ende habe ich berechnet das arithmetische Mittel der individuellen Zeit.

    Der erste Algorithmus nimmt 0,06896 Sekunden, die zweite beschäftigt 0,06896 während der dritte geht bis zu 0,01331.

    Erhöhung der Zahl der Starts Million Unterschied zwischen den drei beginnt zu spürbar:
    Der erste Algorithmus nimmt 0.047184 Sekunden, die zweite 0.028644 während der dritte nur 0,018635.

    Meine Forschung nutzlos für heute ist getan. Ein bald profitieren.

    PS: Dieser Kurs sollte mit einem Lächeln auf den Lippen ... ;-)

    Antwort Quote
  6. getAvatar 1,0 Donnerstag, 06. November, 2008 um 16:59
    Napolux sagte:

    @ Unwiredbrain:
    Für Neugier, auf dem Browser haben Sie die Prüfung? Haben Sie versucht anderen Browsern, um zu sehen, ob es Unterschiede zwischen Browser und Browser?

    Antwort Quote
  7. getAvatar 1,0 Donnerstag, 06. November, 2008 um 17:05
    Giovambattista Fazioli sagte:

    @ Napolux: bravo! Ich habe entfernt die Mundpropaganda : D Ich war fasziniert von ihr zu versuchen ... Google-Chrome : D

    Antwort Quote
  8. getAvatar 1,0 Donnerstag, 06. November, 2008 um 18:39
    Napolux sagte:

    PHP ist immer, JS ändert sich, je nachdem an den Browser, nein? : P

    Antwort Quote
  9. getAvatar 1,0 Freitag, 07. November, 2008 um 01:02
    Napolux sagte:

    @ Napolux:

    PHP ist immer, JS ändert sich, je nachdem an den Browser, nein?

    Ich habe erläutert, böse ... Ich wollte sagen, "ändern Sie die JS-Engine nach dem Browser"

    Antwort Quote
  10. getAvatar 1,0 Freitag, 07. November, 2008 um 07:38
    unwiredbrain sagte:

    @ Napolux, Giovambattista Fazioli: Firefox 3.0.3 auf Linux.

    Opera bringt natürlich die Ergebnisse zu sagen, die am wenigsten spannend: in 0.010882, 0.013681, und (hören, hören) 0,007994 Millisekunden! Fast 77, 52 und 57% Rabatt!

    Ah, ich sehe, dass nur Stunden früher in den Erläuterungen Ich sprach von Sekunden: in Wirklichkeit ist es Millisekunden.

    Ich möchte sehen, wie die Dinge sind zu Hause KHTML / WebKit und Firefox 3.1, aber immer noch nicht über ausreichende Festigkeit und Stabilität, um ernsthafte Prüfung. Ich bitte Sie, widerlegen sie im Fall wissen, etwas dagegen zu unternehmen, Ich würde mich freuen, ... :-)

    Wie für Chrom, sobald es verfügbar ist für Linux spremerò mir gehen ... ;-)

    Grüße.

    PS: in Kürze die Quelle der Test-Suite, jetzt habe ich nicht wirklich an der Zeit ...

    Antwort Quote
  11. getAvatar 1,0 Freitag, 07. November, 2008 um 07:41
    unwiredbrain sagte:

    Aber vor allem: warum meine gravatar sie nach links, um Merry Donnini, dass mercimonio selbst? Mysteries of getAvatar ...

    Antwort Quote
  12. getAvatar 1,0 Freitag, 07. November, 2008 um 10:41
    Giovambattista Fazioli sagte:

    @ Napolux:

    Ich habe erläutert, böse ... Ich wollte sagen, "ändern Sie die JS-Engine nach dem Browser"

    Richtig! Allerdings, um genau zu sein, auch PHP ist nicht genau das gleiche, gibt es verschiedene Versionen auf verschiedenen Servern, mit mehreren Erweiterungen. Aber dies ist zu berücksichtigen, für viel komplizierter Fälle von uns. : D

    Antwort Quote
  13. getAvatar 1,0 Montag, 10. November 2008 bei 18:29
    Napolux sagte:

    @ Giovambattista Fazioli:

    @ Napolux: Ich habe erläutert, böse ... Ich wollte sagen, "ändern Sie die JS-Engine nach dem Browser" Richtig! Allerdings, um genau zu sein, auch PHP ist nicht genau das gleiche, gibt es verschiedene Versionen auf verschiedenen Servern, mit mehreren Erweiterungen. Aber dies ist zu berücksichtigen, für viel komplizierter Fälle von uns.

    Steuerliche ... : P

    Antwort Quote
  14. getAvatar 1,0 Montag, 10. November 2008 bei 18:42
    Giovambattista Fazioli sagte:

    @ Napolux Nur mit Ihnen kann ich leisten, werden "präzise" ... mindestens Sie verstehen, was ich meinte : D und schätzen die Besteuerung : D

    Antwort Quote
  15. getAvatar 1,0 Montag, 10. November 2008 bei 18:46
    Napolux sagte:

    Jetzt beginne ich zu trolleggiare hier, ein wenig ", wie sie es von mir für KB / KB / KB und guter Gesellschaft.

    : Mrgreen:

    Antwort Quote
  16. getAvatar 1,0 Montag, 10. November 2008 bei 19:02
    unwiredbrain sagte:

    @ Napolux: KIB und KIB alles lösen.

    Antwort Quote

Schreibe einen Kommentar

TAG XHTML <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <a <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Verwenden Sie <pre> zu umschließen Code