#javascript #node.js #discord #discord.js
#javascript #node.js #Discord #discord.js
Вопрос:
Мой бот собирается отправить личное сообщение списку людей, которые приняты. Я хочу ввести команду, которая отправит сообщение всем в .json
файле. Я пробовал с циклом, но не могу заставить его работать.
Я думаю, что это файл json:
{
"1": "Name#0001",
"2": "Guy#0001",
"3": "Person#0001"
}
Это мой index.js или main.js:
var ytLinks = JSON.parse(fs.readFileSync('./ytvids.json', 'utf8'));
if (args[1] === 'send') {
const userValues = Object.values(acceptedUsers);
var userList = '';
var i;
for (i = 0; i < userValues.length; i ) {
userList = userValues[i];
}
}
Ответ №1:
something.json:
{
"1": "Name#0001",
"2": "Guy#0001",
"3": "Person#0001"
}
index.js:
const obj = require('./something.json') // require object from file
// execute function on each entry (user tag)
Object.values(obj).forEach((tag) => {
// find each user via tag and send DM
client.users.cache.find(user => user.tag === tag).send('This is a DM')
});
Будьте осторожны, слишком большой массовый DMing может привести к проблемам с Условиями предоставления услуг Discord
Комментарии:
1. С точки зрения производительности Array.forEach работает значительно медленнее, чем for…of и Array.map, поэтому вам, вероятно, следует переключить его на цикл for …of.
2. Поправьте меня, если я ошибаюсь, но
Array#forEach()
определенно не медленнее, чемArray#map()
3. Кроме того, хотя
for...of
считается более быстрым, это имеет значение только при переборе более миллионов элементов. В противном случае это не имеет значения.