为了账号安全,请及时绑定邮箱和手机立即绑定

请问如何实现图中这样的逻辑用递归

请问如何实现图中这样的逻辑用递归

PHP
慕斯王 2019-03-18 15:36:31
请问如果实现这个逻辑可以用递归吗?不能简单的用ifelse因为有很多这样的场景对话 ,我希望用一个方法解决qin
查看完整描述

2 回答

?
犯罪嫌疑人X

TA贡献2080条经验 获得超4个赞

先定义动作序列,然后用一个函数来执行动作序列

var actions = [{
    type: 1,
    msg: '你好'
  },
  {
    type: 2,
    msg: '我是老师Tom'
  },
  {
    type: 3,
    msg: '你是谁'
  },
  {
    type: 4,
    msg: '获取数据'
  },
  {
    type: 5,
    msg: '欢迎你',
    value: true,
    conditions: [{
      type: 3,
      msg: '你上几年级了'
    }, {
      type: 6,
      msg: '执行动作'
    }]
  }
]

function doAction(action) {
  if (!action) {
    return
  }
  console.log(action.msg)
  if (action.type === 1) {

  } else if (action.type === 5) {
    if (action.value) {
      doAction(action.conditions[0])
    } else {
      doAction(action.conditions[1])
    }
  }
}

actions.forEach(doAction)
查看完整回答
反对 回复 2019-03-18
?
浮云间

TA贡献1829条经验 获得超4个赞

没有往回指的箭头,基本上不需要递归

查看完整回答
反对 回复 2019-03-18
  • 2 回答
  • 0 关注
  • 321 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信