Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何增加一个变量,然后保存所述变量,然后继续添加到它?_Javascript_Variables - Fatal编程技术网

Javascript 如何增加一个变量,然后保存所述变量,然后继续添加到它?

Javascript 如何增加一个变量,然后保存所述变量,然后继续添加到它?,javascript,variables,Javascript,Variables,我正在用JS开发一个小的discord机器人,我需要它做的就是当说某个命令时,它会增加一个数字(0->1),然后它会记住它会增加这个数字,这样下次说这个命令时,它会再次增加(1->2)。很抱歉,我对JS很陌生,但我正在一点一点地弄清楚 由于我的知识有限,我所做的只是声明“num”,然后加上一个。然后我尝试将num声明为0,一旦命令(为了占位符的缘故是“song”)被说出,它就会增加到1,然后我们再次说出命令,它会重置回0,然后增加到1 if(command === "song") { v

我正在用JS开发一个小的discord机器人,我需要它做的就是当说某个命令时,它会增加一个数字(
0->1
),然后它会记住它会增加这个数字,这样下次说这个命令时,它会再次增加(
1->2
)。很抱歉,我对JS很陌生,但我正在一点一点地弄清楚

由于我的知识有限,我所做的只是声明“num”,然后加上一个。然后我尝试将num声明为0,一旦命令(为了占位符的缘故是“song”)被说出,它就会增加到1,然后我们再次说出命令,它会重置回
0
,然后增加到
1

if(command === "song") {
    var num = 0
    num = num + 1;
    return message.channel.send(num);
}

我希望每次命令被称为e.x时(我说“song”,机器人说1,我再次说“song”,机器人说2,等等),它都会不断递增。

简单。首先,在JavaScript文件的顶部声明
num
,以便全局访问:

var num = 0;
然后在
if
语句中,只需使用
num++

if (command === "song") {
    num++;
    return message.channel.send(num);
}
(以上语法是,特别是增量后运算符)

下面是一个简化的演示:

var num=0;
功能测试(命令){
如果(命令==“歌曲”){
num++;
}
返回num;
}
console.log(测试(“歌曲”));
log(测试(“不是一首歌”);

console.log(测试(“歌曲”))简单。首先,在JavaScript文件的顶部声明
num
,以便全局访问:

var num = 0;
然后在
if
语句中,只需使用
num++

if (command === "song") {
    num++;
    return message.channel.send(num);
}
(以上语法是,特别是增量后运算符)

下面是一个简化的演示:

var num=0;
功能测试(命令){
如果(命令==“歌曲”){
num++;
}
返回num;
}
console.log(测试(“歌曲”));
log(测试(“不是一首歌”);

console.log(测试(“歌曲”))
您需要将
num
保持在外部范围内,以避免每次重置

你可以考虑下面的例子来理解

让num=0
功能命令(输入){
如果(输入==“歌曲”){
num++;
} 
返回数
}
console.log(命令('song'))
log(命令('blah'))

console.log(command('song'))
您需要将
num
保持在外部范围内,以避免每次重置

你可以考虑下面的例子来理解

让num=0
功能命令(输入){
如果(输入==“歌曲”){
num++;
} 
返回数
}
console.log(命令('song'))
log(命令('blah'))

console.log(command('song'))
您应该将
num
变量初始化从
if
主体中移出,并将其从包含
if
的函数中移出,如code Maniac的回答所示

编辑

合并原始代码示例和code Maniac提供的代码示例,您可以尝试以下操作:

函数init(){
var num=0;
返回函数(命令){
console.log(命令);
如果(命令==“歌曲”){
num=num+1;
//返回message.channel.send(num);
console.log(num);
}
}
}
var commandHandler=init();
命令处理程序(“歌曲”);
命令处理程序(“歌曲”);
commandHandler(“无歌”);
命令处理程序(“歌曲”);
commandHandler(“无歌”);

命令处理程序(“歌曲”)
您应该将
num
变量初始化从
if
主体中移开,并将其从包含
if
的函数中移出,如code Maniac的回答所示

编辑

合并原始代码示例和code Maniac提供的代码示例,您可以尝试以下操作:

函数init(){
var num=0;
返回函数(命令){
console.log(命令);
如果(命令==“歌曲”){
num=num+1;
//返回message.channel.send(num);
console.log(num);
}
}
}
var commandHandler=init();
命令处理程序(“歌曲”);
命令处理程序(“歌曲”);
commandHandler(“无歌”);
命令处理程序(“歌曲”);
commandHandler(“无歌”);
命令处理程序(“歌曲”)