Heim >Web-Frontend >js-Tutorial >Wie kann JavaScript Zahlen- und Zeichenbereiche ohne eine dedizierte „range()'-Funktion generieren?

Wie kann JavaScript Zahlen- und Zeichenbereiche ohne eine dedizierte „range()'-Funktion generieren?

Barbara Streisand
Barbara StreisandOriginal
2024-12-10 22:26:10998Durchsuche

How Can JavaScript Generate Numeric and Character Ranges Without a Dedicated `range()` Function?

In JavaScript integrierte Funktionen zum Generieren von Bereichen

In PHP wird die Funktion „range()“ verwendet, um ein Array von Werten innerhalb der angegebenen Werte zu generieren Grenzen. JavaScript hat kein direktes Äquivalent, aber native Methoden können verwendet werden, um eine ähnliche Funktionalität zu erreichen.

Numerische Bereiche

Um einen Zahlenbereich zu erstellen, können Sie verwenden die folgende Technik:

[...Array(5).keys()]; // [0, 1, 2, 3, 4]

Dieser Code generiert ein Array von Werten von 0 bis 4 (einschließlich).

Zeichenbereiche

Verwenden Sie für einen Zeichenbereich den folgenden Ansatz:

String.fromCharCode(...[...Array('D'.charCodeAt(0) - 'A'.charCodeAt(0) + 1).keys()].map(i => i + 'A'.charCodeAt(0))); // "ABCD"

Dieser Code generiert die Zeichen „ A“ bis „D“.

Iteriert Bereiche

Alternativ können Sie Iteration verwenden, um Bereiche zu generieren:

for (const x of Array(5).keys()) {
  console.log(x, String.fromCharCode('A'.charCodeAt(0) + x));
} // 0,"A" 1,"B" 2,"C" 3,"D" 4,"E"

Dieser Code iteriert über die Zahlen von 0 bis 4 und gibt die entsprechenden Zeichen aus.

Bereichsfunktionen erstellen

Um wiederverwendbare Bereichsfunktionen zu erstellen, können Sie Folgendes tun Folgendes:

function range(size, startAt = 0) {
    return [...Array(size).keys()].map(i => i + startAt);
}

function characterRange(startChar, endChar) {
    return String.fromCharCode(...range(endChar.charCodeAt(0) -
            startChar.charCodeAt(0), startChar.charCodeAt(0)))
}

Bibliotheken von Drittanbietern

Die lodash.js-Bibliothek bietet eine _.range()-Funktion, die die Bereichsgenerierung vereinfacht:

_.range(10); // [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

Kompatibilität mit älteren Browsern

Für ältere Browser die ES6 nicht unterstützen, verwenden Sie den folgenden Code:

Array.apply(null, Array(5)).map(function (_, i) {return i;}); // [0, 1, 2, 3, 4]

Das obige ist der detaillierte Inhalt vonWie kann JavaScript Zahlen- und Zeichenbereiche ohne eine dedizierte „range()'-Funktion generieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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