Auch mit JavaScript möchte ich Python `range ()` sehen!

Einführung

for i in range(10):
    print(i)
    #Cool

Die Theorie ist gut, also zeig es bald!

/**
 * @param  {...number} args
 */
const range = (...args) => {
  const rangeGen = function* (from = 0, to = Infinity, step = 1) {
    for (let v = from; v < to; v += step) {
      yield v;
    }
  };

  return args.length === 0
    ? rangeGen(undefined, undefined, undefined)
    : args.length === 1
    ? rangeGen(undefined, args[0], undefined)
    : args.length === 2
    ? rangeGen(args[0], args[1], undefined)
    : rangeGen(...args);
};

for (const v of range(2, 10)) {
  console.log(v);
  // 2 ~Bis zu 9 werden der Reihe nach ausgegeben
}

Was tust du?

Die Funktion range gibt das Ergebnis der Ausführung der Generatorfunktion zurück. Es ist ein Wrapper, der nur die Argumente an die Generatorfunktion verteilt. rangeGen ist die Generatorfunktion.

――Was ist ein Generator?

Ausführliche Informationen zur Verwendung der Generatorfunktion finden Sie unter MDN.

Zur Zeit mache ich einen Typen, der die Zahlen von "von" bis "bis" aufzählen kann.

abschließend

Jetzt können Sie auch for (const i of range (10)) { in JavaScript.

Bonus

Persönlich ist Pythons Rodeln problematisch, da Sie auf die Reihenfolge der Argumente achten müssen. Also unten (TypeScript).

const range = function* ({
  start = 0,
  stop = Infinity,
  step = 1,
}: {
  start?: number;
  stop: number;
  step?: number;
}) {
  while (start < stop) {
    yield start;
    start += step;
  }
};

for (const v of range({ stop: 10 })) {
  console.log(v);
}

das ist alles.

Recommended Posts

Auch mit JavaScript möchte ich Python `range ()` sehen!
Ich möchte Dunnetts Test in Python machen
Ich möchte mit Python ein Fenster erstellen
Ich möchte verschachtelte Dicts in Python zusammenführen
Ich möchte den Fortschritt in Python anzeigen!
Ich möchte in Python schreiben! (1) Überprüfung des Codeformats
Ich möchte eine Variable in einen Python-String einbetten
Ich möchte Timeout einfach in Python implementieren
Ich möchte in Python schreiben! (2) Schreiben wir einen Test
Ich möchte eine Datei mit Python zufällig testen
Ich möchte mit einem Roboter in Python arbeiten.
Ich möchte in Python schreiben! (3) Verwenden Sie Mock
Ich möchte R-Datensatz mit Python verwenden
Ich möchte am Ende etwas mit Python machen
Ich möchte Strings in Kotlin wie Python manipulieren!
Ich möchte mit Python debuggen
Ich möchte so etwas wie Uniq in Python sortieren
Ich möchte Python mit VS-Code ausführen können
Ich möchte eine schöne Ergänzung zu input () in Python hinzufügen
Ich habe versucht, PLSA in Python zu implementieren
Ich habe versucht, Permutation in Python zu implementieren
Ich möchte APG4b mit Python lösen (nur 4.01 und 4.04 in Kapitel 4)
Ich habe versucht, PLSA in Python 2 zu implementieren
Ich möchte Rails mit Rails auch in einer vagabundierenden Umgebung betreiben
Ich möchte ein Glas aus Python verwenden
Ich möchte eine Python-Umgebung erstellen
Ich möchte Protokolle mit Python analysieren
Ich möchte mit aws mit Python spielen
Ich möchte die Effizienz mit Python auch in experimentellen Systemen verbessern (2) RS232C und pySerial
[Python / AWS Lambda-Ebenen] Ich möchte nur Module in AWS Lambda-Ebenen wiederverwenden
Ich habe versucht, ADALINE in Python zu implementieren
Ich wollte ABC159 mit Python lösen
Ich habe versucht, PPO in Python zu implementieren
Ich möchte die Effizienz mit Python auch in einem experimentellen System verbessern. (1) Installieren Sie Anaconda mit Chocolatey
Ich möchte Matplotlib in PySimpleGUI einbetten
[C-Sprache] Ich möchte Zufallszahlen im angegebenen Bereich generieren
Ich möchte eine in Python in PDF konvertierte Tabelle wieder in CSV konvertieren
Ich möchte das Ergebnis von "Zeichenfolge" .split () in Python stapelweise konvertieren
Ich möchte die abstrakte Klasse (ABCmeta) von Python im Detail erklären
Mit Docker durchgeführte Umgebungswartung (Ich möchte GrADS in Python nachbearbeiten
Ich möchte einen Teil der Excel-Zeichenfolge mit Python einfärben
Ich möchte Affenpatches nur teilweise sicher mit Python machen
Ich möchte MATLAB feval mit Python verwenden
Ich möchte Datetime.now in Djangos Test reparieren
Ich möchte mich mit Schlüsselwortargumenten von Python merken
Ich möchte mit Python eine E-Mail von Google Mail senden.
[Python] Ich möchte 7DaysToDie von Discord aus verwalten! 1/3
Ich möchte datetime.datetime.now () auch mit pytest verspotten!
Ich möchte ein Spiel mit Python machen
Geschrieben "Einführung in die Effektüberprüfung" in Python
Ich möchte DB-Informationen in einer Liste speichern
Ich habe versucht, TOPIC MODEL in Python zu implementieren
Ich möchte Temporäres Verzeichnis mit Python2 verwenden
Ich möchte Ceres Solver aus Python verwenden
#Unresolved Ich möchte Gobject-Introspection mit Python3 kompilieren
Ich möchte APG4b mit Python lösen (Kapitel 2)
Ich möchte die Produkte verkaufen, die ich durch Python Scraping Mercari aufgelistet habe
[Python] Ich möchte 7DaysToDie von Discord aus verwalten! 2/3
Ich möchte C ++ - Code aus Python-Code erstellen!
Ich habe versucht, eine selektive Sortierung in Python zu implementieren