// Это должно быть вне обработчика закэшировано
const myPhrasesList = new Set([
"test test test test test",
"test test test test test",
"test test test test test",
"test test test test test",
"test test test test test",
"test test test test test"
// ... 1mln length
]);
for (object of wsData) {
if (!myPhrasesList.has(object.description)) {
continue;
}
this.notification(object, object.description).then()
}
const s = `login password a=23 b=73 c=3
login password a=23 b=3
login password a=73 c=3
login password b=23 c=73`;
const iterator = s.matchAll(/(?<=login password )(a=(?<a>\d+) ?)?(b=(?<b>\d+) ?)?(c=(?<c>\d+) ?)?/g);
[...iterator].forEach(match => console.log(match.groups));
{a: "23", b: "73", c: "3"}
{a: "23", b: "3", c: undefined}
{a: "73", b: undefined, c: "3"}
{a: undefined, b: "23", c: "73"}
"a=23 b=73 c=3"
, разбить по пробелам, потом каждый элемент разбить по знаку =
на ключ и значение. // 0.0001 - кол-во токена1
// 18 - кол-во знаков после запятой
const token1AmountIn = ethers.utils.parseUnits('0.0001', 18)
const amounts = await pancakeRouterV2Contract.getAmountsOut(token1AmountIn, [Token1Address, Token2Address])
// в amounts[1] будет кол-во токенов2, которые можно получить после обмена на кол-во токена 1
const price = amounts[1] / token1AmountIn
Object.create(null)
) вместо Map
- работа с ним на порядок быстрее.Map
соответствует порядку добавления и не может быть изменен постфактум. Вам следует для сортировки получить из Map
массив, отсортировать, и либо создать новый Map
из оного, либо заново добавить все значения в исходный, предварительно тот очистив. Map
заранее с пустыми значениями - перезапись не меняет порядок. const sortedMap = new Map([...map.entries()].sort(([, a], [, b]) => b - a));
console.log(sortedMap);
const sorted = [...map.entries()].sort(([, a], [, b]) => b - a);
map.clear();
sorted.forEach(([k, v]) => map.set(k, v));
console.log(map);
const Telegraf = require('telegraf');
const bot = new Telegraf(); // Сюда токен от бота
bot.on('voice', async (ctx) => {
const fileId = ctx.update.message.voice.file_id;
const fileLink = await bot.telegram.getFileLink(fileId);
return ctx.reply(fileLink);
}) // Если переслать боту голосовое сообщение, он вернет ссылку на его скачивание