我具有此功能来检查对象可以移动的位置。步数只能是2:
whereToMove(x, y){
for (var i = 0; i < this.state.gameArea.length; i++) {
var cor = this.state.gameArea[i];
var index = this.state.hasCoin.findIndex(item => item.x === cor.x && item.y === cor.y);
if (index === -1) {
if (((x+1) === cor.x && (y+1) === cor.y) || ((x+1) === cor.x && (y-1) === cor.y) || ((x-1) === cor.x && (y-1) === cor.y) || ((x-1) === cor.x && (y+1) === cor.y)) {
console.log(cor.x +', '+cor.y);
that.setState({ showCanMove: [...that.state.showCanMove, {x: cor.x, y: cor.y}]}, function(){
console.log(that.state.showCanMove);
});
}
}
}
}
但是数组'this.state.showCanMove'只有一个对象,而不是两个 即使第一个显示两次可能移动的x和y的console.log使用两个不同的x和y两次显示。 为什么会这样?