数组长度未显示

问题描述

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

qstion[{
Question 1,What is 33+32?,Okay,Question 2,What is 76+32?,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',Did you like the game'
]

解决方法

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

actions-on-google中,您将分别呼叫conv.askconv.close来提问或结束对话。

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

,

那不是有效的数组,或者不是数组中的有效对象。我想你的意思是要像这样的字符串数组

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