IBM Watson Assistant,如何从数组中删除多个项目?
IBM Watson Assistant, how can I remove multiple items from an array?
我有一个列表unmentioned_colors = ["red", "green", "blue", "yellow"]
如果我提到多种颜色,我想更新我的 unmentioned_colors 数组,删除我提到的那些。因此,如果我写 "red green",我想将它们从 unmentioned_colors 中删除,它将变为 ["blue"、"yellow"]
我试过了
unmentioned_colors = "<? $unmentioned_colors.removeValue(@colors.values) ?>"
但它不起作用。
如何从数组中删除多个@colors?
Watson Assistant 支持 two methods to remove an item from a JSONArray、remove(使用索引)和 removeValue(使用值)。每种方法只删除一个元素。因此,您需要循环/迭代要删除的元素,然后调用该方法。你能在应用程序中处理这个吗?
另一种方法是研究 SpEL (the expression language) 并使用集合选择/投影。
要从 $unmentioned_colors
中删除所有 @colors
项,应设置上下文变量 $_bool_listchanged
,如下所示:
_bool_listchanged = "<? $unmentioned_colors.removeAll(@colors.values) ?>"
。
此解决方案不需要循环并且可以工作,因为在后台 Watson Assistant 使用 Java 来处理联系人中的项目。所以在这个数组上我们有方法 removeAll 我们可以从 Java.
调用它
我有一个列表unmentioned_colors = ["red", "green", "blue", "yellow"]
如果我提到多种颜色,我想更新我的 unmentioned_colors 数组,删除我提到的那些。因此,如果我写 "red green",我想将它们从 unmentioned_colors 中删除,它将变为 ["blue"、"yellow"]
我试过了
unmentioned_colors = "<? $unmentioned_colors.removeValue(@colors.values) ?>"
但它不起作用。
如何从数组中删除多个@colors?
Watson Assistant 支持 two methods to remove an item from a JSONArray、remove(使用索引)和 removeValue(使用值)。每种方法只删除一个元素。因此,您需要循环/迭代要删除的元素,然后调用该方法。你能在应用程序中处理这个吗?
另一种方法是研究 SpEL (the expression language) 并使用集合选择/投影。
要从 $unmentioned_colors
中删除所有 @colors
项,应设置上下文变量 $_bool_listchanged
,如下所示:
_bool_listchanged = "<? $unmentioned_colors.removeAll(@colors.values) ?>"
。
此解决方案不需要循环并且可以工作,因为在后台 Watson Assistant 使用 Java 来处理联系人中的项目。所以在这个数组上我们有方法 removeAll 我们可以从 Java.
调用它