Kozack
@Kozack
Thinking about a11y

Для чего нужен внешний цикл в этом фрагменте кода?

Вот цикл взятый из функции Вконтакте для парсинга смайликов
for (var i = 0; i < 2; i++) {
    for (var code in regs) {
      str = str.replace(regs[code], function(match, pre, smile, space) {
        return (pre || '') + Emoji.getEmojiHTML(code)+(space || '');
      });
    }
  }

Ссылка на файл - https://vk.com/js/al/emoji.js?233246401
Строка - 1843.

Насколько я понял, внутренний цикл проходится по объекту с регулярными выражениями и заменяет все вхождения на соответствующий код смайлика. Но для чего делать это дважды? Для чего нужен внешний цикл?
  • Вопрос задан
  • 221 просмотр
Пригласить эксперта
Ответы на вопрос 2
miraage
@miraage
Старый прогер
Предположу, что все эмодзи представляются двумя байтами.
Ответ написан
Комментировать
alsopub
@alsopub
Не знаю как это делает ВК, но в подобных задачах бывает так что после первого прохода в результате подстановок образуются новые элементы, которые можно заменить но первый цикл уже завершен.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
22 нояб. 2024, в 06:06
1500 руб./в час
22 нояб. 2024, в 06:04
1 руб./за проект
22 нояб. 2024, в 03:54
1500 руб./за проект