用户应该看到当前字段地图的打印结果

问题描述 投票:0回答:1

我的问题是,当我执行程序并插入指令时,我没有看到在数组 2d 中打印新值。

print() {
        // I can prin the array, thanks design6726512087 he is in the forum of codecademy
        console.clear();
        this._fields.forEach(rows => {
            console.log(rows.join(''));
        });
    }
playGame() {
        while (!this.gameOver) {      
            this.print();      
            const promptInputUser = prompt("Instructions to move is: {u as up}, {d as down}, {l as left} & {r as right}.\nWich is your path? ");
            // Call the function to move into array 
            this.instructionsToMove(promptInputUser);
        }
        console.log("Game Over");
    }

当我调用 playGame() 中的函数来打印数组中的指令时,却抛出一个问题:TypeError: Cannot read properties of undefined (reading 'forEach')。 我也希望你能理解我的英语不是更好,但我正在努力写。

javascript node.js terminal
1个回答
0
投票

您需要在调用

_fields
之前声明
print();
并初始化它 或者在您的
print()
函数中,您应该首先验证它是否存在。

错误消息明确告诉您,您正在调用的对象

foreach
未定义。在这种情况下,这意味着
this._fields
不存在,因此您无法对其调用操作。

一种解决方案是将代码更改为:

print() {
        // I can prin the array, thanks design6726512087 he is in the forum of codecademy
        console.clear();
        if (this._fields) {
            this._fields.forEach(rows => {
                console.log(rows.join(''));
            });
        }
    }

虽然您没有提供实现,但我们可以假设

this.instructionsToMove(promptInputUser);
初始化了
_fields
变量

© www.soinside.com 2019 - 2024. All rights reserved.