Foxy9, попытки в верном направлении. Если сложности с синтаксисом – напишите пока псевдо-код человечьим языком. Что сделать, в каком порядке.
Потом «переведите» каждое действие в синтакс JS. Под рукой держите справочник языка, например MDN – удобно найти любой объект, метод, свойство. Узнать, что возвращает метод. Посмотреть примеры кода.
Сергей Горностаев, Gandi сегодня тоже не смог принять платёж по MasterCard'у ЮМани. Получилось заплатить криптой, через крайне неприятный для новичка UX – регистрации с верификацией в Binance, BitPay и, в итоге 5000 рублей на входе еле оплатили 2277 рублёвый счёт на выходе (2 года домена .com). Остальное сожрали невыгодные курсы и комиссии.
WbICHA, не пробовал. Но в теории: тормознутость системы динамична, и чем длиннее таймаут, тем выше в итоге окажется погрешность. За секунду ожидания таймер вполне может задуматься на 300мс больше положенного, вероятно.
WbICHA, визуально секунды будут щелкать не ритмично, вероятно.
Нааверное таки нужны более частые, чем раз-в-секунду тики. И показывать актуальную разницу во времени.
Тут можно считать операцию "узнать только id" ближайшего соседа — «дешевой», а вот обмен списками – «дорогим». Тогда вполне. Ну ещё можно вероятности прикрутить — чем полнее свой список, тем может, реже начать «общаться»? Не факт, правда, что это выигрышная стратегия. Надо ещё подумать, что ценнее: охватить всех-всех, или же снизить шум ложных проверок.
Aetae, оказывается, формально можно использовать id, начинающиеся с цифры. Единственное требование – ID не должен содержать ASCII-пробелов. А так может и начинаться с цифры и состоять из одних цифр.
Потом «переведите» каждое действие в синтакс JS. Под рукой держите справочник языка, например MDN – удобно найти любой объект, метод, свойство. Узнать, что возвращает метод. Посмотреть примеры кода.