【问题标题】:Storing URLs in a JSON and calling in JavaScript将 URL 存储在 JSON 中并在 JavaScript 中调用
【发布时间】:2017-07-28 08:01:33
【问题描述】:

我是编程新手,目前正在使用 Discord.js 库为 Discord 编写机器人,当用户输入命令时,我希望它随机选择一个链接并发送它。我有一个类似设置的系统,但所有链接都存储在 .js 文件内的一个数组中,当我选择添加新链接时非常乏味。我想知道如何将链接列表存储在 JSON 中,然后随机化并按命令发送。谢谢! :)

【问题讨论】:

  • javascript 对象没有顺序,除非您使用ES6。数组会简单得多
  • JSON 只是一种用于传递数据的格式,因此如果您“在 JSON 中存储链接列表”,您仍然需要以与现在几乎完全相同的方式维护列表.

标签: javascript json discord


【解决方案1】:

数组应该没问题,您可以选择一个随机索引并发送它。您有什么困难想求助于 JSON?

你可以只做array.push('link'),当你必须将链接发送给用户时,你可以生成一个从0到数组长度的随机数,选择该数字并将其发送到用户。事实上,我认为使用 JSON 只会让事情变得更复杂。

【讨论】:

  • 我不会说我遇到了困难,但或多或​​少只是想通过删除大量链接来使代码看起来更好。感谢您的建议,我会尽力提供这些信息!
【解决方案2】:

我有一个命令,我可以将链接保存到一个文本文件中,还有一个随机生成器,它从该文本文件中获取随机行并在频道中发布。

我只会给你代码,如果你愿意,你可以使用/玩弄它。

if (message.content.startsWith(prefix + "save")) {
  fs.appendFileSync("links.txt", message.content + "\r\n", encoding = "utf8");
  message.channel.send("Saved.");
}

if (message.content.startsWith(prefix + "link")) {
  fs.readFile("links.txt", "utf8", function(err, data) {
    if (err) return console.error(err);
    var lines = data.split("\r\n"); //reads it line by line
    var linesTotal = lines.length;
    var lineSend = Math.floor(Math.random() * linesTotal);
    var randomMsg = lines[lineSend];
    message.channel.send(randomMsg);
 });
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-10
    • 1970-01-01
    • 1970-01-01
    • 2012-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多