[coffeescript] CoffeeScript에서 익명 개체 배열 정의

CoffeeScript에서 익명 개체의 배열을 어떻게 정의합니까? YAML 구문을 사용하여 가능합니까?

명명 된 개체의 배열을 갖는 것이 매우 쉽다는 것을 알고 있습니다.

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

하지만이 두 개체에 이름이 없으면 조금 더 까다로울 것입니다.



답변

당신은 할 수 없습니다 :

이것은 몇 가지 트릭입니다.

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

다른

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

이게 최선이다:

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


답변

단순-개체를 정의하는 열보다 낮은 열에 쉼표 만 넣으십시오.

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

될 것입니다:

var a;

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


답변

각 개체 사이에 코마를 추가 할 수도 있습니다. 

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


답변

쉼표 솔루션이 더 낫다고 생각하지만 완전성을 위해 이것을 추가 할 것이라고 생각했습니다.

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


답변

배열을 정의하는 동안 변수를 정의 할 수 있으므로 추악한 대답은 다음과 같습니다.

a =
  items: [
    item1 =
      name: 'value1'
    item2 =
      name: 'value2'
  ]

작동하지만 “정의되었지만 사용되지 않은 변수 (item1, item2)”에 대한 경고가 표시 될 수 있습니다. 더 나은 방법은 사용하지 않는 변수를 생략하는 데 사용되는 밑줄, 변수를 사용하는 것입니다.

a =
  items: [
    _ =
      name: 'value1'
    _ =
      name: 'value2'
  ]

console.log JSON.stringify(a) 다음을 생성합니다.

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


답변

OP의 질문에 대한 답은 아니지만 같은 이유로 여기에있는 경우를 대비하여 … Mountain Dew가 낮고 ‘:’대신 ‘=’를 사용하면 Coffeescript가 배열을 바꿉니다. 컴파일 오류없이 객체를 평면 배열로 변환합니다.

data = [
    one='one'
    two='two'
  ,
    one='1'
    two='2'
]

생산

['one', 'two', '1', '2']

Mountain Dew를 더 삽입하고 ‘=’를 ‘:’로 바꿉니다.


답변

나는 이것을 잘 컴파일 할 수 있다고 약간의 조작 후에보고하게되어 매우 기쁩니다.

items: [
  nameA: subA
  nameB: subB
,
  nameX: subX
  nameY: subY
]

두 개의 익명 개체 목록이 예상했던대로 결과가 나타납니다.