javascript - JavaScript getElementAt() 命令仅返回 [object Object]
问题描述
我正在使用 CodeHS JavaScript 版本。我正在制作一个蛇程序。当我遇到一个元素(SNAKEY)以停止程序时,我试图调用它,但是当我尝试时
if(direction == NORTH) {
if(elemTopRight == SNAKEY)
{
gameOver();
} else if(elemTopLeft == SNAKEY) {
gameOver();
}
}
(elemTopRight 和 elemTopLeft 是 getElementVariable)
它只在我的终端中返回 [object Object]。我的 getElements 和我的 SNAKEY 元素都是全局变量,但是 getElementAt 在遇到它时不会返回 SNAKEY。当我遇到它们时,我需要它来返回元素的名称。
对于其余的代码上下文(不,它不漂亮):
var elemTopRight = getElementAt(posX - 1, posY - 1);
var elemTopLeft = getElementAt(posX + 11, posY - 1);
var elemBottomRight = getElementAt(posX - 1, posY + 11);
var elemBottomLeft = getElementAt(posX + 11, posY + 11);
var elemCenterTop = getElementAt(posX + 5, posY - 1);
var elemCenterBottom = getElementAt(posX + 5, posY + 11);
var elemCenterRight = getElementAt(posX + 11, posY + 5);
var elemCenterLeft = getElementAt(posX - 1, posY + 5);
function checkCollision() {
elemTopLeft = getElementAt(posX - 1, posY - 1);
elemTopRight = getElementAt(posX + 11, posY - 1);
elemBottomLeft = getElementAt(posX - 1, posY + 11);
elemBottomRight = getElementAt(posX + 11, posY + 11);
elemCenterTop = getElementAt(posX + 5, posY - 1);
elemCenterBottom = getElementAt(posX + 5, posY + 11);
elemCenterRight = getElementAt(posX + 11, posY + 5);
elemCenterLeft = getElementAt(posX - 1, posY + 5);
if(direction == NORTH) {
if(elemTopRight == SNAKEY)
{
gameOver();
} else if(elemTopLeft == SNAKEY) {
gameOver();
}
}
println(elemTopRight + ", " + elemTopLeft);
if(direction == SOUTH) {
if(elemBottomLeft != null && elemBottomLeft != food) {
gameOver();
} else if(elemBottomRight != null && elemBottomRight != food) {
gameOver();
}
}
if(direction == EAST) {
if(elemBottomRight != null && elemBottomRight != food) {
gameOver();
} else if(elemTopRight != null && elemTopRight != food) {
gameOver();
}
}
if(direction == WEST) {
if(elemBottomLeft != null && elemBottomLeft != food) {
gameOver();
} else if(elemTopLeft != null && elemTopLeft != food) {
gameOner();
}
}
}
/////////////////////////////////////////////////////////////
var SNAKEY = new Rectangle(SNAKE_DIM, SNAKE_DIM);
function draw() {
checkCollision();
checkWalls();
SNAKEY = new Rectangle(SNAKE_DIM, SNAKE_DIM);
SNAKEY.setPosition(posX, posY);
SNAKEY.setColor(Color.green);
add(SNAKEY);
move();
}
解决方案
如果您将对象转换为如下行中的字符串:
println(elemTopRight + ", " + elemTopLeft);
它将返回 [object Object]
elemTopRight
是一个带有变量的对象。(可能是 X 和 Y)使用不同的方式记录其内容。
喜欢:console.log(elemTopRight)
推荐阅读
- c# - 在 Unity 中,我可以让实例化函数接受自定义坐标而不是 Vector3 或 Transform 吗?
- kubernetes - 通过 cli 在 pod 中配置资源限制
- flutter - 列表瓷砖颤动的交替背景颜色
- c++ - 无法理解二维数组指针中发生了什么
- http - 分块传输编码数据可以包含 CRLF 吗?
- python - python中(x,y)点列表的移动平均值
- android - 如何在 JetPack Compose Android 的应用程序类中使用偏好数据存储来更改主题?
- python - 如果将birth_month 中的值2 和birth_date 设置为30 或31,它应该打印Invalid Option。但相反,它会为我输入的任何值打印 Invalid Option
- javascript - 如何正确读取 NextJS 中的 Axios 授权令牌以获取需要身份验证的请求?
- azure - 如何在 azure 数据工厂中获取更新记录之前和之后