首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当用户取消时显示提示符,它将得到未显示的typeError。

当用户取消时显示提示符,它将得到未显示的typeError。
EN

Stack Overflow用户
提问于 2018-11-02 16:20:53
回答 2查看 38关注 0票数 0

我已经声明了一个名为init()的函数,它向用户询问游戏大小,这是由空格分隔的。我希望在用户不单击ok时显示提示符,并显示为cancel (显式单击cancel或隐式按下esc键盘)。

以下是我所做的工作:

代码语言:javascript
复制
function init(){
    let promptMessage = 'تعداد سطرها و ستون‌های جدول را به ترتیب وارد کرده و با فاصله از هم جدا کنید\nمثلا مقدار پیش‌فرض دارای 7 جدول و 6 ستون است';
    let promptDefault = '7 6';
    let prompt = this.prompt(promptMessage, promptDefault);
    if (prompt) {
        prompt = prompt.split(" ")
        console.log(prompt);
        prompt[0] = Number(prompt[0]);
        prompt[1] = Number(prompt[1]);
        return prompt;
    }
    init()
}

var gameSize = init(),
    rows = gameSize[0],
    cols = gameSize[1];

当我测试上述代码时,单击cancel后,它将正确工作并再次显示提示,但问题是它会给出以下错误。

未定义的TypeError:无法读取行rows = gameSize[0]中未定义的属性'0‘

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-11-02 16:33:04

调用gameSize = init()时,它运行init()函数,如果用户点击cancel,该函数将返回undefined,因为在该代码路径中没有声明return语句。

然后,当您执行var rows = gameSize[0]时,gameSize在这一点上是undefined,并导致您看到的错误。

您需要做的是返回下一个init()调用的结果。

代码语言:javascript
复制
function init(){
    let promptMessage = 'تعداد سطرها و ستون‌های جدول را به ترتیب وارد کرده و با فاصله از هم جدا کنید\nمثلا مقدار پیش‌فرض دارای 7 جدول و 6 ستون است';
    let promptDefault = '7 6';
    let prompt = this.prompt(promptMessage, promptDefault);
    if (prompt) {
        prompt = prompt.split(" ")
        console.log(prompt);
        prompt[0] = Number(prompt[0]);
        prompt[1] = Number(prompt[1]);
        return prompt;
    }
    return init();
}

var gameSize = init(),
    rows = gameSize[0],
    cols = gameSize[1];

票数 1
EN

Stack Overflow用户

发布于 2018-11-02 16:31:18

也许是因为当您尝试访问gameSize时还没有定义它。尝试在行和cols之前声明gameSize变量

代码语言:javascript
复制
var gameSize = init();
var rows = gameSize[0],
    cols = gameSize[1];
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53122343

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档