Использование хашидов в цикле 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)

Другие вопросы по тегам