值未被推送到for循环内的数组

时间:2014-05-03 03:36:41

标签: javascript arrays stack push

我遇到一个JavaScript方法的问题我正在制作的游戏类似于流行的游戏2048,但是有一个任何大小的棋盘。

this.board是游戏对象的属性,是一个n或n数组,其中包含0或数字。 this.board [行] [列]

例如:

SIZE_OF_BOARD = 5; this.board [i]在方法结束时可能是[0,0,2,4,0] this.board [i]的所需外观将是[0,0,0,2,4],但是目前它是[0,0,0],2和4没有被推到列内部堆叠。

我的问题是在列循环中没有任何东西被推送到堆栈。

game.prototype.right = function () {
    for(var i = 0; i < SIZE_OF_BOARD; i++){ // row loop
      var zeroCount = 0;
      var temp = 0;
      var stack = [];

      console.log(this.board[i]);
      for(var j = 0; j < SIZE_OF_BOARD; j++){ // column loop
        if(this.board[i][j] == 0){
          zeroCount++;
        } else if (temp == this.board[i][j] && temp != 0){
          stack.push(temp*2);
          zeroCount++;
          temp = 0;
        } else if (temp!=0){
          temp = this.board[i][j];
          stack.push(temp);
        }
      } 
      console.log(stack);
      while(zeroCount > 0){ // add the 0's to the left of the stack.
        stack.unshift(0);
        zeroCount--;
      }
      this.board[i] = stack;
      console.log(stack);
    }
    // this.next();
  }

知道出了什么问题吗?

0 个答案:

没有答案