0

我有一个列表unmentioned_colors = ["red", "green", "blue", "yellow"] 如果我提到了多种颜色,我想更新我的未提及颜色数组,删除我提到的那些。因此,如果我写“red green”,我想将它们从 un提及的颜色中删除,它将变为 [“blue”,“yellow”]

我尝试了 un提及的颜色 ="<? $unmentioned_colors.removeValue(@colors.values) ?>" 但它不起作用。如何从我的数组中删除多个 @colors?

4

2 回答 2

1

Watson Assistant 支持两种从 JSONArray 中移除项目的方法,remove(使用索引)和 removeValue(使用值)。每种方法只删除一个元素。因此,您需要循环/迭代要删除的元素,然后调用该方法。你能在应用程序中处理这个吗?

另一种方法是研究SpEL(表达式语言)并使用集合选择/投影。

于 2018-05-24T08:45:07.707 回答
0

要从中删除所有@colors项目,$unmentioned_colors应设置一个上下文变量$_bool_listchanged,如下所示:

_bool_listchanged = "<? $unmentioned_colors.removeAll(@colors.values) ?>".

这个解决方案不需要循环并且可以工作,因为在后台,Watson Assistant 使用 Java 来操作联系人中的项目。所以在这个数组上,我们有可以从 Java 调用的方法 removeAll。

于 2018-05-24T23:20:22.563 回答