2016-07-22 2 views
0

Called Функция:console.log дает правильный вывод, но при обращении заданного значения она дает неверные результаты

this.findVerticalPossibleScoring = function(){ 
     var possibilitySet = []; 
     for (var j = 0; j < 9;j++) { 
      for (var i = 0; i < 7;){ 
       var tempTile = this._tiles[i][j]; 
       if(this.gameTilesValue[i][j]!=-1){ 
        var tileTagValue = this.gameTilesValue[i][j]; 
        if(this.gameTilesValue[i+1][j]==tileTagValue && this.gameTilesValue[i+2][j]==tileTagValue){ 
         setElement = []; 
         do{ 
          var tempPoint = this.makeArray(i,j); 
          setElement.push(tempPoint); 
          console.log(" verical i:"+i+" j:"+j); 
          i=i+1; 
         }while(i<9&&this.gameTilesValue[i][j]==tileTagValue); 
         possibilitySet.push(setElement); 
         continue; 
        } 
       } 
       i = i+1; 
      } 
     } 
     return possibilitySet; 
    }; 
    this.makeArray = function (a,b){ 
     console.log("element i:"+a+" j:"+b); 
     var arrayTemp = []; 
     arrayTemp.push(a); 
     arrayTemp.push(b); 
     return arrayTemp; 
    }; 

Вызов функции часть:

if(scoringPossible == true){ 
       //blast the tiles and add new tiles; 
       var verticalPossibleScoring = this.findVerticalPossibleScoring(); 
       toBeDeletedTiles = []; 
       for(var i=0;i<verticalPossibleScoring.length;i++){ 
        var tempSet = verticalPossibleScoring[i]; 
        for(var j = 0;j<tempSet.length;j++){ 
         var tempSetEntry = tempSet[i]; 
         console.log("TILE i:"+tempSetEntry[0]+" j:"+tempSetEntry[1]); 
        } 
       } 
      } 

Я добавил функцию под названием, а также вызова функции, если поскольку функция вызова слишком велика. Я знаю, что это печально известная проблема цикла javascript. Я использую движок gc-devkit, который является новым, и я новичок в нем. Я решил эту проблему для UIImage в ней, создав собственный класс, но здесь я не требую для него настраиваемого массива. Может ли кто-нибудь помочь мне в этом вопросе. Заранее спасибо.

ответ

1

Вы используете j как переменную цикла при итерации по tempSet, но затем используете i при получении элементов из tempSet. Может просто изменить

var tempSetEntry = tempSet[i]; 

в

var tempSetEntry = tempSet[j]; 
+0

Большое спасибо! Это была маленькая и глупая ошибка. – Renaissance

+0

Рад, что это сработало! – Davis

 Смежные вопросы

  • Нет связанных вопросов^_^