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
]
두 개의 익명 개체 목록이 예상했던대로 결과가 나타납니다.