Länder und Währungen mit JS verwalten
Das Verwalten der Liste von Ländern und Währungen sowie das Formatieren verschiedener Währungsformate für alle verschiedenen Länder kann in unseren Projekten einige Herausforderungen und Arbeit darstellen. Erstens möchten wir keine Liste mit 200 Ländern und ihren Währungen, Vorwahlen und Flaggen-Emojis in unserer Codebasis herumtragen, insbesondere nicht im Frontend. Zweitens verwendet jedes Land unterschiedliche Währungssymbole, unterschiedliche Formatierungen wie Komma-Platzierungen und unterschiedliche Dezimalgenauigkeiten müssen verwaltet werden.
Aus diesem Grund wurde das NPM-Paket Country-Currency-Utils geschrieben. Es ist in Typoskript geschrieben und eignet sich für jedes Projekt, das Javascript verwendet, egal ob auf dem Server oder im Frontend.
Länder
Wir haben eine Liste der über CDN gehosteten Länder, auf die über die Variable COUNTRIES_DETAILS_URL aus dem Paket zugegriffen werden kann. Die Antwort ist ein Schlüsselwertobjekt, wobei der Schlüssel der zweibuchstabige ISO-Standard-Ländercode ist. Das Wertobjekt enthält Wählcode, Währungscode (ISO-Standard) und Flaggen-Emojis. Mit den folgenden Funktionen können Länder aus dem Paket aufgelistet werden.
type TCountryDetails = { name: string; // Country name dialCode: string; // Country dial code currencyCode: string; // Country currency code flagEmoji: string; // Country flag emoji }; type TCountryData = TCountryDetails & { countryCode: string; // ISO 3166 country code }; getAllCountryDetails(): Promise<Record<string, TCountryDetails>> getAllCountryData(): Promise<TCountryData[]> getCountryData(countryCode: string): Promise<TCountryData | undefined> getCountryData(countryCode: string): Promise<TCountryData | undefined> // examples const allCountriesData = await getAllCountryData() const countryData = await getCountryData("US") const countriesData = await getCountriesData(["US", "BD"])
Währungen
Wir haben auch eine Liste von Währungen, die über CDN gehostet werden und über die Variable CURRENCIES_DETAILS_URL zugänglich sind. Es enthält ein Schlüsselwertobjekt, wobei „key“ ein ISO-Standard-Währungscode ist und der Wert ein Objekt mit verschiedenen Währungsdetails wie Währungssymbolen (nativ und Standard), Zifferngruppierung (Millionen-Milliarden oder Lakh-Crore) und Dezimalgenauigkeit gefolgt von dem ist Währung. Hier sind Funktionen zur Nutzung der Daten.
type TCurrencyDetails = { name: string; // Currency name demonym: string; // Currency demonym majorSingle: string; // Major unit name in singular form (e.g. Dollar) majorPlural: string; // Major unit name in plural form (e.g. Dollars) symbol: string; // Currency symbol (e.g. $, CA$) symbolNative: string; // Currency symbol in native language (e.g. $) symbolPreferred: string; // preferred currency symbol, used for display minorSingle: string; // Minor unit name in singular form (e.g. Cent) minorPlural: string; // Minor unit name in plural form (e.g. Cents) decimals: number; // Number of decimal places, used for standard display decimalsCompact: number; // Number of decimal places, used for compact display digitGrouping: 2 | 3; // Digit grouping for formatting (e.g. 2 for 1,00,000, 3 for 100,000) }; type TCurrencyData = TCurrencyDetails & { currencyCode: string; // ISO 4217 currency codes }; getAllCurrencyDetails(): Promise<Record<string, TCurrencyDetails>> getAllCurrencyData(): Promise<TCurrencyData[]> getCurrencyData(currencyCode: string): Promise<TCurrencyData | undefined> getCurrenciesData(currencyCodes: string[]): Promise<(TCurrencyData | undefined)[]> // Examples const allCurrenciesData = await getAllCurrencyData() const currencyData = await getCurrencyData("USD") const currenciesData = await getCurrenciesData(["USD", "BDT"])
Dienstprogramme zur Betragsformatierung
Die Entwicklung eines Projekts, das mehrere Währungen verwaltet, kann aus mehreren Gründen eine Herausforderung sein –
- Behandeln Sie die Dezimalstellengenauigkeit der Währungen
- Zeigen Sie die richtigen Symbole an (native und Standardsymbole)
- Formatieren Sie die Währungen mit Komma-Trennung
Die Währungsdatenliste enthält alle wichtigen Daten, die für die korrekte Anzeige von Geldbeträgen erforderlich sind. Es gibt auch Hilfsfunktionen, die bei der Handhabung von Geldbeträgen helfen.
Beträge runden
Standardmäßig wird der Geldbetrag gerundet, indem der Betrag begrenzt wird. Sie können den Betrag jedoch auch in der Mitte runden.
const roundedAmount = getRoundedAmount(123.4517, 2); // 123.46 const roundedAmount = getRoundedAmount(123.4517, 2, true); // 123.45
Möglicherweise möchten Sie Beträge je nach Währung auch runden. Hier haben wir eine weitere Funktion zum Runden der Währungsdetails.
const USDCurrencyData = await getCurrencyData("USD"); const BDTCurrencyData = await getCurrencyData("BDT"); const roundedAmount = getRoundedAmountOnCurrency(123.4567, USDCurrencyData); // 123.46 const roundedAmount = getRoundedAmountOnCurrency(123.45, BDTCurrencyData); // 124 const roundedAmount = getRoundedAmountOnCurrency(123.45, BDTCurrencyData, { isDecimalsStandard: true, }); // 123.45
Hinweis: Sie werden feststellen, dass wir das Versprechen verwenden, zuerst die Währungsdetails zu lesen. Es ist wichtig, auf diese Weise vorzugehen, da wir nicht alle Währungsdetails in unserer Codebasis auflisten möchten. Also holen wir die Daten ab und nutzen sie. Sie können sich aber auch dafür entscheiden, eine Kopie aufzubewahren und die Funktion getRoundedAmountOnCurrency zu verwenden. Die gleiche Idee gilt für die nächsten Funktionen.
Beträge formatieren
Bei der Formatierung von Beträgen werden Zeichenfolgen zu Anzeigezwecken zurückgegeben. Das Formatieren von Beträgen umfasst zwei Dinge
- Geben Sie den Betrag mit festen Dezimalstellen an
- Geben Sie einen durch Kommas getrennten Betrag zurück
Verwenden Sie die folgende Funktion, um Beträge in Währungen zu formatieren.
type TCountryDetails = { name: string; // Country name dialCode: string; // Country dial code currencyCode: string; // Country currency code flagEmoji: string; // Country flag emoji }; type TCountryData = TCountryDetails & { countryCode: string; // ISO 3166 country code }; getAllCountryDetails(): Promise<Record<string, TCountryDetails>> getAllCountryData(): Promise<TCountryData[]> getCountryData(countryCode: string): Promise<TCountryData | undefined> getCountryData(countryCode: string): Promise<TCountryData | undefined> // examples const allCountriesData = await getAllCountryData() const countryData = await getCountryData("US") const countriesData = await getCountriesData(["US", "BD"])
Beträge anzeigen
Um Beträge schließlich anzuzeigen, müssen dem formatierten Betrag Währungssymbole hinzugefügt werden. Nutzen Sie die folgenden Funktionen
Die erste Funktion getDisplayAmountOnCurrency übernimmt Währungsdetails -
type TCurrencyDetails = { name: string; // Currency name demonym: string; // Currency demonym majorSingle: string; // Major unit name in singular form (e.g. Dollar) majorPlural: string; // Major unit name in plural form (e.g. Dollars) symbol: string; // Currency symbol (e.g. $, CA$) symbolNative: string; // Currency symbol in native language (e.g. $) symbolPreferred: string; // preferred currency symbol, used for display minorSingle: string; // Minor unit name in singular form (e.g. Cent) minorPlural: string; // Minor unit name in plural form (e.g. Cents) decimals: number; // Number of decimal places, used for standard display decimalsCompact: number; // Number of decimal places, used for compact display digitGrouping: 2 | 3; // Digit grouping for formatting (e.g. 2 for 1,00,000, 3 for 100,000) }; type TCurrencyData = TCurrencyDetails & { currencyCode: string; // ISO 4217 currency codes }; getAllCurrencyDetails(): Promise<Record<string, TCurrencyDetails>> getAllCurrencyData(): Promise<TCurrencyData[]> getCurrencyData(currencyCode: string): Promise<TCurrencyData | undefined> getCurrenciesData(currencyCodes: string[]): Promise<(TCurrencyData | undefined)[]> // Examples const allCurrenciesData = await getAllCurrencyData() const currencyData = await getCurrencyData("USD") const currenciesData = await getCurrenciesData(["USD", "BDT"])
Die zweite Funktion, getDisplayAmountOnCurrencyCode, benötigt nur ein Währungssymbol, aber es ist ein Versprechen.
const roundedAmount = getRoundedAmount(123.4517, 2); // 123.46 const roundedAmount = getRoundedAmount(123.4517, 2, true); // 123.45
Abschluss
Viele Anwendungen beschäftigen sich mit Ländern und Währungen und dieses Paket wurde entwickelt, um viele der Probleme zu lösen, mit denen wir während unserer Arbeit bei Headless Technologies Limited und bei der Entwicklung der SAAS-Vertriebstechnologieplattform engaze.ai konfrontiert waren, die in über 30 Ländern eingesetzt wird.
Wenn Sie das Paket nützlich finden, sollten Sie erwägen, das Paket Github Repo zu starten.
Sie können gerne eine Frage im Beitrag hinterlassen.
Das obige ist der detaillierte Inhalt vonLänder und Währungen mit JS verwalten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Häufig gestellte Fragen und Lösungen für das Ticket-Ticket-Ticket-Ticket in Front-End im Front-End-Entwicklungsdruck ist der Ticketdruck eine häufige Voraussetzung. Viele Entwickler implementieren jedoch ...

JavaScript ist der Eckpfeiler der modernen Webentwicklung. Zu den Hauptfunktionen gehören eine ereignisorientierte Programmierung, die Erzeugung der dynamischen Inhalte und die asynchrone Programmierung. 1) Ereignisgesteuerte Programmierung ermöglicht es Webseiten, sich dynamisch entsprechend den Benutzeroperationen zu ändern. 2) Die dynamische Inhaltsgenerierung ermöglicht die Anpassung der Seiteninhalte gemäß den Bedingungen. 3) Asynchrone Programmierung stellt sicher, dass die Benutzeroberfläche nicht blockiert ist. JavaScript wird häufig in der Webinteraktion, der einseitigen Anwendung und der serverseitigen Entwicklung verwendet, wodurch die Flexibilität der Benutzererfahrung und die plattformübergreifende Entwicklung erheblich verbessert wird.

Es gibt kein absolutes Gehalt für Python- und JavaScript -Entwickler, je nach Fähigkeiten und Branchenbedürfnissen. 1. Python kann mehr in Datenwissenschaft und maschinellem Lernen bezahlt werden. 2. JavaScript hat eine große Nachfrage in der Entwicklung von Front-End- und Full-Stack-Entwicklung, und sein Gehalt ist auch beträchtlich. 3. Einflussfaktoren umfassen Erfahrung, geografische Standort, Unternehmensgröße und spezifische Fähigkeiten.

Diskussion über die Realisierung von Parallaxe -Scrolling- und Elementanimationseffekten in diesem Artikel wird untersuchen, wie die offizielle Website der Shiseeido -Website (https://www.shiseeido.co.jp/sb/wonderland/) ähnlich ist ...

Zu den neuesten Trends im JavaScript gehören der Aufstieg von Typenkripten, die Popularität moderner Frameworks und Bibliotheken und die Anwendung der WebAssembly. Zukunftsaussichten umfassen leistungsfähigere Typsysteme, die Entwicklung des serverseitigen JavaScript, die Erweiterung der künstlichen Intelligenz und des maschinellen Lernens sowie das Potenzial von IoT und Edge Computing.

JavaScript zu lernen ist nicht schwierig, aber es ist schwierig. 1) Verstehen Sie grundlegende Konzepte wie Variablen, Datentypen, Funktionen usw. 2) Beherrschen Sie die asynchrone Programmierung und implementieren Sie sie durch Ereignisschleifen. 3) Verwenden Sie DOM -Operationen und versprechen Sie, asynchrone Anfragen zu bearbeiten. 4) Vermeiden Sie häufige Fehler und verwenden Sie Debugging -Techniken. 5) Die Leistung optimieren und Best Practices befolgen.

Wie fusioniere ich Array -Elemente mit derselben ID in ein Objekt in JavaScript? Bei der Verarbeitung von Daten begegnen wir häufig die Notwendigkeit, dieselbe ID zu haben ...

Erforschen Sie die Implementierung der Funktion des Bedien- und Drop-Einstellungsfunktion der Panel ähnlich wie VSCODE im Front-End. In der Front-End-Entwicklung wird VSCODE ähnlich wie VSCODE implementiert ...
