Если вы хотите использовать минимальный синтаксис Coffeescript для определения вашего ассоциативного массива, я предлагаю создать простой двухстрочный метод для преобразования ключей variable name
в значения переменных после определения массива.
Вот как я это делаю (реальный массив намного больше):
@sampleEvents =
session_started:
K_TYPE: 'session_started'
K_ACTIVITY_ID: 'activity'
session_ended:
K_TYPE: 'session_ended'
question_answered:
K_TYPE: 'question_answered'
K_QUESTION: '1 + 3 = '
K_STUDENT_A: '3'
K_CORRECT_A: '4' #optional
K_CORRECTNESS: 1 #optional
K_SECONDS: 10 #optional
K_DIFFICULTY: 4 #optional
for k, event of @sampleEvents
for key, value of event
delete event[key]
event[eval(key.toString())] = value
Массив SampleEvents
теперь:
{ session_started:
{ t: 'session_started',
aid: 'activity',
time: 1347777946.554,
sid: 1 },
session_ended:
{ t: 'session_ended',
time: 1347777946.554,
sid: 1 },
question_answered:
{ t: 'question_answered',
q: '1 + 3 = ',
sa: '3',
ca: '4',
c: 1,
sec: 10,
d: 4,
time: 1347777946.554,
sid: 1 },