Использование хашидов в цикле for jQuery
Я пытаюсь использовать плагин hashids для хеширования ticket_id
в течение цикла.
for (var i = 0; i < result.length; i++) {
var hashids = new Hashids("", 5);
var id = hashids.encode(result[i].ticket_id);
console.log(hashids);
[...]
html += '<tr class="ticketClick" data-url="' + baseURL + id>' [...]
}
HTML для таблицы генерируется динамически на основе result
переданный вызовом ajax. При щелчке строки таблицы я перенаправляю на URL в атрибуте data-url.
Проблема в том, что хеш-коды не запускаются и поэтому id
не добавляется к URL.
Консольный журнал hashids
производит:
Hashids {version: "1.0.2", minAlphabetLength: 16, sepDiv: 3.5, guardDiv: 12, errorAlphabetLength: "error: alphabet must contain at least X unique characters"…}
Я искал ошибку и ничего не нашел...
Что мне кажется странным, так это то, что если я передам целое число непосредственно в метод hashids, например:
var id = hashids.encode(20);
Кодирование работает и возвращает ожидаемый хеш.
Console.log of result[i].ticket_id
возвращает ожидаемое целое число, поэтому цикл for выполняет свою работу правильно. декларирование new Hashids()
вне for
петля, кажется, не имеет значения. Так что я не уверен, что здесь происходит не так. Какие-либо предложения?
1 ответ
Проблема была вызвана тем, что функция Ajax извлекала данные в формате JSON.
Решение
Разобрать значение в целое число:parseId(result[i].ticket_id)