Während eines technischen Interviews für eine Rolle des Full-Stack-Entwicklers befand ich mich in einer vertrauten, aber unerwartet herausfordernden Situation. Alles war reibungslos verlaufen, bis der Interviewer mir eine Aufgabe präsentierte, die zuerst einfach schien.
"Können Sie diese Dateinamen so sortieren, wie sie in einem Datei -Explorer in aufsteigender Reihenfolge angezeigt werden?" sie fragten.
Ich dachte: "Stück Kuchen." Sortierung ist eine so grundlegende Operation, dass ich keine Probleme hatte. Aber sobald ich anfing, den Code zu schreiben, schlug ich einen Haken. Die Dateinamen waren überall an der Stelle, einige waren einfach, aber andere umfassten Zahlen, Briefe und Kombinationen von beiden.
Ich habe versucht, eine grundlegende String -Sortiermethode wie:
zu verwenden
array.sort ();
Dies führte jedoch zu einem seltsamen Ergebnis. Die Zahlen wurden lexikografisch sortiert (was bedeutet, dass „10“ vor „2“ kommen würde, weil es mit einem „1“ beginnt), und gemischte alphanumerische Saiten waren nicht in der richtigen Reihenfolge. Es war ein Chaos und ähnelte nicht der natürlichen Reihenfolge, die Sie in Dateiforschern sehen.
Ich konnte spüren, wie sich die Uhr tickte und sich unter Druck setzte. Ich habe versucht, verschiedene benutzerdefinierte Vergleichsfunktionen zu durcharbeiten, um die Zahlen richtig zu behandeln, aber nichts schien zu klicken.
Dann erinnerte ich mich an einen einfachen Trick, über den ich vor nicht allzu langer Zeit gelesen hatte: localecompare.
localEcompare ermöglicht es Ihnen, Strings auf eine Weise zu vergleichen, die die Art und Weise nachahmt, wie Menschen Dinge sortieren. Durch die Verwendung mit der numerischen Option behandelt es die Zahlen als tatsächliche Zahlen, anstatt sie als Text zu vergleichen. Hier ist der Code, den ich verwendet habe:
array.sort ((a, b) => a.localecompare (b, undefined, {numeric: true, Sensitivität: 'Basis'}));
Diese einzelne Codezeile sortierte die Dateinamen genau wie ein Datei -Explorer: Die Zahlen wurden auf natürliche Weise bestellt, und Brief-/Zahlenkombinationen wurden nahtlos behandelt.
Sobald ich den Code leitete, sah ich die richtige Bestellung auf dem Bildschirm angezeigt. Die Dateinamen wurden perfekt in aufsteigender Reihenfolge sortiert, genau wie in einem Datei -Explorer. Ich lächelte, als ich dem Interviewer die Lösung erklärte, der mit der Lösung des Problems zufrieden war.
Was sich anfänglich wie ein kompliziertes Problem anfühlte, wurde mit einer einfachen, eleganten Lösung gelöst. Es war eine Erinnerung daran, dass manchmal die effektivsten Werkzeuge am einfachsten sind, und das Wissen, dass diese kleinen Tricks den Unterschied ausmachen.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3