Wie definiere ich ein Array anonymer Objekte in CoffeeScript? Ist dies mit der YAML-Syntax überhaupt möglich?
Ich weiß, dass es ziemlich einfach ist, ein Array benannter Objekte zu haben:
items:[
item1:
name1:value1
item2:
name:value2
]
Es wäre jedoch etwas schwieriger, wenn diese beiden Objekte keine Namen hätten
coffeescript
Preslav Rachev
quelle
quelle
Einfach - Platzieren Sie ein Komma in einer Spalte, die niedriger ist als die, in der Sie Ihre Objekte definieren.
Wird werden:
quelle
[
links von der nächsten ZeileSie können zwischen jedem Objekt auch ein Koma einfügen:
quelle
Ich denke, die Komma-Lösung ist besser, aber ich dachte, ich würde dies der Vollständigkeit halber hinzufügen:
quelle
Sie können Variablen definieren, während Sie das Array definieren. Eine hässliche Antwort wäre also:
Es würde funktionieren, aber Sie erhalten möglicherweise Warnungen zu "definierten, aber nicht verwendeten Variablen (Element1, Element2)". Besser wäre es, einen Unterstrich zu verwenden, eine Variable, die verwendet wird, um nicht verwendete Variablen wegzulassen:
console.log JSON.stringify(a)
wird dies produzieren:quelle
Keine Antwort auf die Frage des OP, aber nur für den Fall, dass Sie aus dem gleichen Grund wie ich hier sind ... Wenn Sie nur noch wenig Mountain Dew haben und '=' anstelle von ':' verwenden, wird Coffeescript Ihr Array umdrehen von Objekten in ein flaches Array ohne Kompilierungsfehler:
Produziert
Fügen Sie mehr Gebirgstau ein und ersetzen Sie das '=' durch ':'.
quelle
Ich freue mich sehr, nach einigem Hin und Her berichten zu können, dass ich dies genau richtig kompilieren kann:
Das Ergebnis ist genau das, was Sie erwarten: eine Liste von zwei anonymen Objekten.
quelle
Ich bin auf ein ähnliches Problem gestoßen und habe diese Lösung gefunden. Wenn Sie ein Array mit vielen einzelnen k / v-Objekten ohne geschweifte Klammern wünschen, rücken Sie einfach einige davon ein. Scheint den Trick zu machen.
Produziert:
Es ist für mich nicht intuitiv; Sie würden denken, dass dies Unterobjekte erzeugen würde, aber ich denke, das Komma am Ende der Zeile sagt ihm, dass es aufhören soll, Eigenschaften für dieses Objekt zu erstellen.
quelle
Python
meine 'Muttersprache' ist, habe ich keine Angst, ein paar zusätzliche Klammern und Klammern zu verwenden. Auch wenn Coffeescript sie nicht benötigt, finde ich sie hilfreich. Ihr zweiter Block ist besser lesbar.Warum nicht:
Es ist immer noch eine enorme Verbesserung für mich gegenüber js, sehr einfach zu lesen, minimal und ziemlich sicher zu schreiben.
quelle