javascript - Alexa Skills 使用 slotValue 作为数组名称
问题描述
if (slotValues.listableThings.ERstatus === 'ER_SUCCESS_MATCH') {
switch (slotValues.listableThings.resolved) {
case 'CLASSES':
{
lookupArray = sessionAttributes.CLASSES;
};
break;
case 'TONES':
{
lookupArray = sessionAttributes.TONES;
};
break;
default:
break;
}
有没有办法做到这一点,而不是使用开关来设置 lookupArray = sessionAttributes.(slotValues.listableThings.resolved)
我在 javascript 上可以找到的所有内容都说要使用警报,但在 node.js 中没有为 alexa 技能定义警报。
解决方案
您可以迭代思考元素并使用键分配
// Emulating
var slotValues = {
listableThings: {
resolved: "CLASSES"
}
};
var sessionAttributes = {
CLASSES: "THESE ARE CLASSES",
TONES: "THESE ARE TONES"
}
let lookupArray = sessionAttributes[slotValues.listableThings.resolved];
console.log(lookupArray);
推荐阅读
- javascript - 在不影响其他元素的情况下更改卡片的标题
- spring - 同一个控制器可以有两个不同的文件和两个不同的最大大小限制吗?
- jupyter-notebook - Google Drive 无法将 .ipynb 文件识别为 colab 笔记本
- makefile - makefile 中的 $(MAKE) 被评估为 make 而不是 nmake
- input - 如何读取固定长度的 .txt 文件并按位置识别每个字段
- node.js - MongoDB 使用 NodeJS 更新 JsonValidator 一直失败
- python - 循环遍历目录中的所有 CSV 并使用 pandas 合并数据
- html - 如何以角度过滤来自后端的数据
- python-3.x - 对聚合数据帧的数据帧字典执行操作的优化方式
- bleu - BLEU - 低阶错误 N-gram 重叠