Matroids Matheplanet Forum Index
Moderiert von matph
Informatik » Programmieren » Ist so etwas JavaScript-Standard?
Autor
Kein bestimmter Bereich J Ist so etwas JavaScript-Standard?
Goswin
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 18.09.2008
Mitteilungen: 1665
Wohnort: Chile, Ulm
  Themenstart: 2021-09-29

In meinem Browser funktionieren Dinge wie: \sourceon JavaScript let arr1 = [2,3] let arr2 = [0,arr1] // let r,s,t; [r,[s,t]] = arr2 //geht so etwas immer ?? alert("r="+r+", s="+s+", t="+t) \sourceoff So etwas ähnliches (entpacken) kenne ich aus Python3. Aber ist das legal in JavaScript oder nur eine nichtstandard-Erweiterung von Firefox?


   Profil
tactac
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 15.10.2014
Mitteilungen: 2276
  Beitrag No.1, eingetragen 2021-09-29

Ist Standard.


   Profil
tactac
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 15.10.2014
Mitteilungen: 2276
  Beitrag No.2, eingetragen 2021-09-30

Vielleicht noch ein Hinweis. Ich glaube, man kann in Python nur Listen und verwandtes so auseinandernehmen, aber nicht Maps auf die Art, wie JavaScript es für Objekte erlaubt. \sourceon JavaScript var { k : v, l : w } = { k : 47, l : 11 }; \sourceoff etwa deklariert die Variablen v und w und weist denen die Werte 47 bzw. 11 zu. (Und natürlich kann man das weiter verschachteln und anstelle der Variablen andere Muster (ob nun für Listen oder Objekte) angeben.) Für Objekt- Muster und Literale wie {x : x, y : y, z : z} gibt es außerdem die Kurzschreibweise {x,y,z}.


   Profil
__blackjack__
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 23.09.2021
Mitteilungen: 81
  Beitrag No.3, eingetragen 2021-09-30

So etwas in der Richtung wird in Python 3.10 mit „Structural Pattern Matching“ kommen: https://www.python.org/dev/peps/pep-0636/#going-to-the-cloud-mappings \sourceon python match {"k": 47, "l": 11}: case {"k": v, "l": w}: print(v, w) # -> 47 11 \sourceoff


   Profil
Triceratops
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 28.04.2016
Mitteilungen: 5815
Wohnort: Berlin
  Beitrag No.4, eingetragen 2021-09-30

Das nennt sich Destructuring (siehe auch hier) und gehört seit ES6 zu JavaScript dazu. Anstatt let r,s,t; [r,[s,t]] = arr2; kann man auch kürzer let [r,[s,t]] = arr2; schreiben.


   Profil
Goswin hat die Antworten auf ihre/seine Frage gesehen.
Goswin hat selbst das Ok-Häkchen gesetzt.

Wechsel in ein anderes Forum:
 Suchen    
 
All logos and trademarks in this site are property of their respective owner. The comments are property of their posters, all the rest © 2001-2021 by Matroids Matheplanet
This web site was originally made with PHP-Nuke, a former web portal system written in PHP that seems no longer to be maintained nor supported. PHP-Nuke is Free Software released under the GNU/GPL license.
Ich distanziere mich von rechtswidrigen oder anstößigen Inhalten, die sich trotz aufmerksamer Prüfung hinter hier verwendeten Links verbergen mögen.
Lesen Sie die Nutzungsbedingungen, die Distanzierung, die Datenschutzerklärung und das Impressum.
[Seitenanfang]