我正在使用他们的 SpaceGeek 模板为 Alexa 开发一项事实技能。模板本身非常简单,但我试图通过确保使用的事实不会在同一会话中再次出现来改进它。所以我在使用后删除了元素。但是,现在遇到的问题是,会话中删除的那些元素甚至不会出现在以后的会话中。所以我假设全局变量保留在后端,因此创建了一个复制数组,如下所示。但它仍然行不通。因此,在使用所有事实一次之后,我总是会得到“这就是我们现在拥有的所有事实”。即使我开始一个新的会话。任何帮助将不胜感激。
function handleNewFactRequest(response) {
var COPY_FACTS= SOME_FACTS.splice(0);
if(COPY_FACTS.length>0){
var factIndex = Math.floor(Math.random() * COPY_FACTS.length);
var fact = COPY_FACTS[factIndex];
// Create speech output
var speechOutput = "Here's your random fact: " + fact + " would you like more?";
var repromptOutput = "would you like more random facts?";
COPY_FACTS.splice(factIndex, 1);
response.ask(speechOutput, repromptOutput);
}else{
var speechOutput = "That's all the facts we have for now.";
response.tell(speechOutput);
}
}