首页 > 解决方案 > 数组长度未显示

问题描述

我正在使用对话流来构建聊天机器人。以下是一个示例问题数组,但实际和示例的格式相同:

qstion[{
Question 1, What is 33+32?,
Okay, Question 2, What is 76+32?,
Okay, Last Question, Did you like the game? 
}]

我正在使用以下代码来获取数组的长度:

app.intent('First', (conv) => {
    const ans = conv.parameters.any;
    if(ans == 65){
            senddata[0] = qstion[0] + ans;
            conv.add(qstion.length);
            conv.ask(qstion[1]);
            }
    else{
            conv.add('Please enter a valid number');
            conv.ask(qstion[0]);
        }
});

该应用程序在此处崩溃。你能帮我得到数组的长度吗?

更新:

这是我使用 console.log(qstion) 时它在日志上的显示方式:

qstion[
'Question1, What is 33+32',
'Okay, Question2, What is 76+32',
'Okay, Last Question, Did you like the game'
]

标签: node.jsdialogflow-esactions-on-google

解决方案


由于您的问题有“dialogflow”标签,我假设您正在使用该actions-on-google库。您看到的问题不是您的数组长度错误,而是您使用错误的方法发送响应。

actions-on-google中,您将分别致电conv.askconv.close提出问题或结束对话。

您的代码片段显示conv.add(qstion.length). 但是,在您使用的库conv.add中不存在,可能是崩溃的原因。conv.add仅在使用@assistant/conversation与 Dialogflow 不兼容的新 Actions Builder 和库时有效。


推荐阅读