Stellen Sie sich vor, wir haben eine Umgebung mit einem globalen Gültigkeitsbereich, der nur ein einzelnes Objekt namens enthält codegolf. Dieses Objekt hat ein einzelnes Kind stackexchange, das eine Eigenschaft namens hat com.
Der Zugriff auf diese Eigenschaft würde so aussehen codegolf.stackexchange.com.
Die Herausforderung
Die Eingabe Ihres Programms / Ihrer Funktion ist eine Zeichenfolge, die versucht, auf eine Eigenschaft im globalen Bereich zuzugreifen. Immer wenn diese Eigenschaft gefunden wird, müssen Sie einen Wahrheitswert drucken / zurückgeben. Wird die Eigenschaft nicht gefunden, wird ein falscher Wert gedruckt / zurückgegeben. Der Haken: Wenn Sie versuchen, auf eine Eigenschaft eines nicht vorhandenen Objekts zuzugreifen, sollte Ihr Programm einen Fehler auslösen¹.
Um die Sache ein bisschen einfacher zu machen, können Sie davon ausgehen, dass die Eingabe immer [a-z.], niemals leer, niemals wiederholt .und niemals mit einem beginnen oder enden wird .. Socodegolf. also eine ungültige Eingabe.
Testfälle
codegolf.stackexchange.com => 1 // or any other truthy value
codegolf.stackexchange.net => 0 // or any other falsy value
codegolf.stackexchange => 1
codegolf.foo => 0
codegolf => 1
foo => 0
codegolf.com => 0
codegolf.constructor => 0
codegolf.foo.bar => Error (since foo is undefined)
codegolf.stackexchange.com.foo => Error (since com is a value, not an object)
codegolf.stackexchange.com.foo.bar => Error
foo.stackexchange.com => Error
foo.bar => Error
foo.bar.baz => Error
Das ist Code-Golf , der kürzeste Code in Bytes gewinnt
¹ , wenn (und nur dann) die Sprache Ihrer Wahl unterstützen Fehler nicht bei allen , müssen Sie Ausgabe etwas , was deutlich macht , dass dies ein Fehler ist. Wenn Sie zum Beispiel 1 für wahr und 0 für falsch verwenden, können Sie "e" für einen Fehler verwenden. Seien Sie in Ihren Rückgabewerten konsistent und erklären Sie das Verhalten in Ihrem Beitrag.
codegolf.comzu den Testfällen hinzuzufügen , um codegolf(.stackexchange)?(.com)?$Typprüfungen auszuschließen
foo.stackexchange.com
foowürde zurückkehren undefined, aber es würde keinen Fehler auslösen. foo.barwürde einen Fehler auslösen, da foonicht definiert.
codegolf.foo => 0so foo => 0.
foo => Errorangemessener.