javascript - простая арифметика в создании словаря - PullRequest
1 голос
/ 16 марта 2012

Я использую jQuery с Django для работы с таблицами. У меня есть следующий JavaScript:

$("#pending_table").tablesorter({
    headers: {5 + {{somevariable}}: {sorter:false},6 + {{somevariable}}: {sorter:false}}
});

(я опустил кучу других опций, которые не имеют значения)

Часть, которая вызывает проблемы - это добавление в определение словаря заголовков. Глядя на источник полученной веб-страницы, я вижу, что {{somevariable}} правильно конвертируется в значение 4, так что это не проблема, связанная с Django.

В итоге: «5 + 4: значение» не работает, «9: значение» работает.

Я предполагаю, что я неправильно понял синтаксис JavaScript.

Помощь

1 Ответ

3 голосов
/ 16 марта 2012

Литералы объектов Javascript допускают использование только литералов в качестве ключей. Другими словами, вы не можете иметь вычисляемое выражение в качестве ключа. Например, это не разрешено:

headers = {
  (1 + 2): 4
}

Тем не менее, вы можете сделать это, чтобы обойти это ограничение:

headers = {};
headers[1 + 2] = 4;

В вашем случае похоже, что вы хотите сделать что-то вроде этого:

var headers = {};
headers[5 + someVar] = {sorter: false};
headers[6 + someVar] = {sorter: false};
$("#pending_table").tablesorter({    
  headers: headers   
});    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...