107 votes

La définition d'un tableau d'objets anonymes en CoffeeScript

Comment puis-je définir un tableau d'objets anonymes en CoffeeScript? Est-ce possible, en utilisant la syntaxe YAML?

Je sais que le fait d'avoir un tableau d'objets nommés est assez facile:

items:[
   item1:
      name1:value1
   item2:
      name:value2
]

Cependant, il serait un peu plus compliqué, si ces deux objets avaient pas de noms

305voto

Michael Hays Points 2967

Très Simple: placez une virgule par elle-même dans une colonne inférieure à celle dans laquelle vous définissez vos objets.

a = [
   nameA1: valueA1
   nameA2: valueA2
   nameA3: valueA3
  ,
   nameB1: valueB1
   nameB2: valueB2
   nameB3: valueB3
]

Deviendra:

var a;

a = [
  {
    nameA1: valueA1,
    nameA2: valueA2,
    nameA3: valueA3
  }, {
    nameB1: valueB1,
    nameB2: valueB2,
    nameB3: valueB3
  }
];

41voto

arthur Points 476

Vous pouvez également ajouter un coma entre chaque objet:

items:[
    item1:
        name1:value1
  ,
    item2:
        name:value2
]

27voto

island205 Points 1035

vous ne pouvez pas:

c'est quelques astuces:

items:[
    (name:"value1")
    (name:"value2")
]

un autre

items:[
    true && name:"value1"
    true && name:"value2"
]

c'est le meilleur:

items:[
    {name:"value1"}
    {name:"value2"}
]

14voto

Evan Moran Points 1420

Je pense que la virgule solution est la meilleure, mais j'ai pensé que je voudrais ajouter c'est complet:

a = [
  {
    nameA1: valueA1
    nameA2: valueA2
    nameA3: valueA3
  }
  {
    nameB1: valueB1
    nameB2: valueB2
    nameB3: valueB3
  }
]

0voto

jcollum Points 10236

J'ai couru dans un problème connexe et a trouvé cette solution. Si vous voulez un tableau de plusieurs k/v des objets sans les accolades, juste tiret certains d'entre eux. Semble faire l'affaire.

data = [                                     
  "2013-09-25T16:46:52.636Z":3,              
    "2013-09-25T16:47:52.636Z":6,            
      "2013-09-25T16:48:52.636Z":2,          
        "2013-09-25T16:49:52.636Z":7,        
  "2013-09-25T16:50:52.636Z":5,              
    "2013-09-25T16:51:52.636Z":2,            
      "2013-09-25T16:52:52.636Z":1,          
        "2013-09-25T16:53:52.636Z":3,        
  "2013-09-25T16:54:52.636Z":8,              
    "2013-09-25T16:55:52.636Z":9,            
      "2013-09-25T16:56:52.636Z":2,          
        "2013-09-25T16:57:52.636Z":5,        
          "2013-09-25T16:58:52.636Z":7       
]                                            

Produit:

coffee> data
[ { '2013-09-25T16:46:52.636Z': 3 },
  { '2013-09-25T16:47:52.636Z': 6 },
  { '2013-09-25T16:48:52.636Z': 2 },
  { '2013-09-25T16:49:52.636Z': 7 },
  { '2013-09-25T16:50:52.636Z': 5 },
  { '2013-09-25T16:51:52.636Z': 2 },
  { '2013-09-25T16:52:52.636Z': 1 },
  { '2013-09-25T16:53:52.636Z': 3 },
  { '2013-09-25T16:54:52.636Z': 8 },
  { '2013-09-25T16:55:52.636Z': 9 },
  { '2013-09-25T16:56:52.636Z': 2 },
  { '2013-09-25T16:57:52.636Z': 5 },
  { '2013-09-25T16:58:52.636Z': 7 } ]

C'est contre-intuitif pour moi; vous pensez que ce serait rendre les sous-objets, mais je pense que la virgule à la fin de la ligne, dit-il d'arrêter de faire les propriétés de cet objet.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X