Javascript 通过Annyang语音识别库输入1个以上参数(*val)的最佳/建议方法是什么?

Javascript 通过Annyang语音识别库输入1个以上参数(*val)的最佳/建议方法是什么?,javascript,speech-recognition,annyang,Javascript,Speech Recognition,Annyang,Annyang命令使用*val向回调函数输入值。如果我想输入多个项目,该怎么办 例如,我想根据用户输入更新表单。这样我就可以有这样的命令 set Name *val set *val 然后val将包含可以分配给字段的Name值。但是如果我的表单有很多字段,那么为所有字段编写这样的命令可能会很乏味。相反,我本可以 set *FieldName *FieldVal 此命令将返回两个参数,而不是FieldName和FieldVal。如果FieldName是页面上可用字段的有效名称,那么我可以使用

Annyang命令使用*val向回调函数输入值。如果我想输入多个项目,该怎么办

例如,我想根据用户输入更新表单。这样我就可以有这样的命令

set Name *val
set *val
然后val将包含可以分配给字段的Name值。但是如果我的表单有很多字段,那么为所有字段编写这样的命令可能会很乏味。相反,我本可以

set *FieldName *FieldVal
此命令将返回两个参数,而不是FieldName和FieldVal。如果FieldName是页面上可用字段的有效名称,那么我可以使用FieldVal更新该值,或者忽略该命令

实现这一点的一种方法,当然是解析val,首先从命令获取FieldName,然后从类似

set Name *val
set *val
但我不认为它总是能产生干净的解决方案


有没有一种建议的方法可以实现这一点?

您要寻找的不是“splat”操作符(
*
),而是“命名变量”操作符(

您的命令将如下所示

var commands = {
    'set :FormId with :Value':setForms,
}
annyang.addCommands(commands);

function setForm(formId, value){
    if(isValidForm(formId)){
        forms[formId].value = value;
    }
}

现在说“用bar设置foo”将把表单[“foo”]的值设置为“bar”。

Great!!。工作,我只是做了一个快速检查,也通读了文件,非常无礼地提到了允许的争论,复数是这里的关键词。