Console.log 给出正确的输出但是当访问设置值时它给出错误的输出
Console.log gives correct output but when accessing set value it gives wrong output
调用函数:
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 游戏引擎,而且我是新手。我通过创建自定义 class 解决了其中 UIImage 的相同问题,但在这里我不需要自定义数组。谁能指导我解决这个问题。提前致谢。
您在遍历 tempSet 时使用 j
作为循环变量,但在从 tempSet 获取元素时使用 i
。也许只是改变
var tempSetEntry = tempSet[i];
到
var tempSetEntry = tempSet[j];
调用函数:
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 游戏引擎,而且我是新手。我通过创建自定义 class 解决了其中 UIImage 的相同问题,但在这里我不需要自定义数组。谁能指导我解决这个问题。提前致谢。
您在遍历 tempSet 时使用 j
作为循环变量,但在从 tempSet 获取元素时使用 i
。也许只是改变
var tempSetEntry = tempSet[i];
到
var tempSetEntry = tempSet[j];