首页 > 解决方案 > 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 技能定义警报。

标签: javascriptnode.jsalexaalexa-skillalexa-slot

解决方案


您可以迭代思考元素并使用键分配

// 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);


推荐阅读