gpt4 book ai didi

javascript - Discord.js 如何操作变量以使数组变量更改后显示文本输出

转载 作者:行者123 更新时间:2023-11-28 04:01:02 24 4
gpt4 key购买 nike

var Playe0;
var loca = ['L0', 'R0', 'L1', 'R1', 'L2', 'R2', 'L3', 'R3'];
var dead = [0, 0, 0, 0, 0, 0, 0, 0];

bot.on("message", function (msg) {
var alive = dead.map((v, i) => !v ? loca[i] : null).filter(v => v != null);
if (msg.content === "!p0") { Player0 = msg.author.id; msg.channel.send(`Registered`); }
if (msg.author.id === Player0) {
if (msg.content === "k") {
dead[0] = 1;
msg.channel.send(`Targets: ` + alive.join(", ")); }
}

这段代码最终完成了我所需要的工作,但是它执行的过程是不正确的。
它应该将 dead 数组的第一个索引更改为 1 或 0,然后发送消息。目前,它发送消息,然后更改值。在行话之外,它不会像应有的那样从输出中删除值。

L0 用户输入所需的输出:k

电流输出:目标:L0、R0、L1、R1、L2、R2、L3、R3
所需输出:目标:R0、L1、R1、L2、R2、L3、R3

我现在已经删除了额外的玩家,因为我可以分发更改。
如果与 R0 关联的用户随后输入 k,则输出为 R0, L1, R1, L2, R2, L3, R3
这表明代码正在更改索引,但它是在注册更改之前发送消息。这可能是由于 live 变量的放置或使用造成的。

最佳答案

您的alive变量永远不会及时更新,因为它发生在您更新之前 dead[0] 。移动var alive = dead.map((v, i) => !v ? loca[i] : null).filter(v => v != null);dead[0] = 1;

关于javascript - Discord.js 如何操作变量以使数组变量更改后显示文本输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47115434/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com