Heim Web-Frontend js-Tutorial Länder und Währungen mit JS verwalten

Länder und Währungen mit JS verwalten

Dec 29, 2024 am 05:22 AM

Managing countries and currencies with JS

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"])
Nach dem Login kopieren
Nach dem Login kopieren

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"])
Nach dem Login kopieren
Nach dem Login kopieren

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
Nach dem Login kopieren
Nach dem Login kopieren

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
Nach dem Login kopieren

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"])
Nach dem Login kopieren
Nach dem Login kopieren

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"])
Nach dem Login kopieren
Nach dem Login kopieren

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
Nach dem Login kopieren
Nach dem Login kopieren

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!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

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

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Was soll ich tun, wenn ich auf den Codendruck auf Kleidungsstücke für Front-End-Thermalpapier-Quittungen stoße? Was soll ich tun, wenn ich auf den Codendruck auf Kleidungsstücke für Front-End-Thermalpapier-Quittungen stoße? Apr 04, 2025 pm 02:42 PM

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 ...

Entmystifizieren JavaScript: Was es tut und warum es wichtig ist Entmystifizieren JavaScript: Was es tut und warum es wichtig ist Apr 09, 2025 am 12:07 AM

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.

Wer bekommt mehr Python oder JavaScript bezahlt? Wer bekommt mehr Python oder JavaScript bezahlt? Apr 04, 2025 am 12:09 AM

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.

Wie kann man Parallax -Scrolling- und Element -Animationseffekte wie die offizielle Website von Shiseido erzielen?
oder:
Wie können wir den Animationseffekt erzielen, der von der Seite mit der Seite mit der offiziellen Website von Shiseido begleitet wird? Wie kann man Parallax -Scrolling- und Element -Animationseffekte wie die offizielle Website von Shiseido erzielen? oder: Wie können wir den Animationseffekt erzielen, der von der Seite mit der Seite mit der offiziellen Website von Shiseido begleitet wird? Apr 04, 2025 pm 05:36 PM

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 ...

Die Entwicklung von JavaScript: Aktuelle Trends und Zukunftsaussichten Die Entwicklung von JavaScript: Aktuelle Trends und Zukunftsaussichten Apr 10, 2025 am 09:33 AM

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.

Ist JavaScript schwer zu lernen? Ist JavaScript schwer zu lernen? Apr 03, 2025 am 12:20 AM

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 Arrayelemente mit derselben ID mit JavaScript in ein Objekt? Wie fusioniere ich Arrayelemente mit derselben ID mit JavaScript in ein Objekt? Apr 04, 2025 pm 05:09 PM

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 ...

So implementieren Sie die Funktion des Ziell- und Drop-Einstellungsfunktion, ähnlich wie bei VSCODE in der Front-End-Entwicklung? So implementieren Sie die Funktion des Ziell- und Drop-Einstellungsfunktion, ähnlich wie bei VSCODE in der Front-End-Entwicklung? Apr 04, 2025 pm 02:06 PM

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 ...

See all articles