如何增加一个变量,然后保存表示变量,然后继续在补充呢?

时间:2019-02-02 06:22:22

标签: javascript variables

我工作在JS小不和谐机器人,所有我需要做的是,当称某指令时,将递增编号(0 -> 1),那么它会记住它递增该数这样,下次说该命令时,它将再次增加(1 -> 2)。抱歉,我是JS的新手,但是我正在一点一点地弄清楚。

由于我的知识有限,我尝试过的只是声明“ num”,然后再加一个。然后我尝试将num声明为0,一旦说出命令(在占位符的情况下为“ song”),它就会增加到一,然后再次说出命令,它将重置为0,然后增加到1

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

我希望它在每次说e.x命令时保持递增(我说“ song”,机器人说1,再说一次“ song”,bot说2,等等)

3 个答案:

答案 0 :(得分:2)

您应该移动num变量初始化远离if体和地点出来包含该函数的if,如由代码疯狂答案。

编辑

合并原来的示例代码和代码疯子提供的代码示例,你可以尝试这样的事:

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

var commandHandler = init();

commandHandler('song');
commandHandler('song');
commandHandler('no-song');
commandHandler('song');
commandHandler('no-song');
commandHandler('song');

答案 1 :(得分:0)

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

var num = 0;

然后在你的if声明中,只需要使用num++

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

(以上语法是increment operator,特别是后递增操作符)。

这是一个简化的演示:

var num = 0;

function test(command) {
  if (command === "song") {
    num++;
  }
  return num;
}

console.log(test("song"));
console.log(test("not a song"));
console.log(test("song"));

答案 2 :(得分:0)

您需要保持num在外部范围,以避免每次都重设

  

您可以考虑以下示例进行理解

let num = 0 

function command(input){
   if( input === "song") {
        num++;
      } 
  return num
}

console.log(command('song'))
console.log(command('blah'))
console.log(command('song'))