如何在Mirth Connect中将字符串解析为列表?

如何在Mirth Connect中将字符串解析为列表?,mirth,Mirth,我使用的是Mirth Connect 3.7版 我需要解析全局设置中定义的全局变量globalVariable,并在一个目标过滤器中使用它的值 此变量包含逗号分隔的值 globalVariable= 'A,B,C' 我在目标过滤器内的Javascript代码中使用该变量 var someValue='B'; var arr=$('globalVariable'); if(arr&&arr.split(',')。包括(someValue)){ 返回true; } 返回false; 但不知何故,

我使用的是Mirth Connect 3.7版

我需要解析全局设置中定义的全局变量
globalVariable
,并在一个目标过滤器中使用它的值

此变量包含逗号分隔的值

globalVariable= 'A,B,C'
我在目标过滤器内的Javascript代码中使用该变量

var someValue='B';
var arr=$('globalVariable');
if(arr&&arr.split(',')。包括(someValue)){
返回true;
}
返回false;
但不知何故,mirthconnect无法正确转换我的代码。它抱怨该类型没有
include()
方法。
我做错了什么?我希望在
split()
之后有一个Javascript数组。

Mozilla Rhino是Mirth使用的Javascript引擎。它没有Array.prototype.includes

您可以这样做:

if (arr && arr.split(',').indexOf(someValue) > -1) {
  return  true;
}
return false;

下面是Rhino javascript功能兼容性图表。要访问最新功能,您需要在“ES6”模式下运行mirth 3.7+

$('globalVariable')
可能会选择元素本身而不是元素的值。只需添加like.value或.val()或任何正确的语法就可以提取
globalVariable
的实际内容/值/内部文本。它可以正确地工作到
split()
部分。我在那个函数之后得到一个数组。但是它似乎不知道
includes()
函数。您使用的是什么浏览器
.includes()
是chrome 47+、edge 14+、ff43+,在IE上根本不受支持。@Shilly,它是一个集成服务器,而不是浏览器。@gitrust如果您无法获得较新版本的Rhino,则有ES6 shim/polyfill库可以提供帮助。有许多方法可以实现同样的功能
newjava.util.HashSet(arr.split(',')).contains(someValue)
也可以。使用Array.prototype.indexOf与includes基本相同,但是-1为假,任何索引0或更大的为真。我不建议使用rhino版本,而不是与您的欢笑版本一起提供的版本。谢谢大家为我指出了正确的方向。虽然
java.util.HashSet
不适合我。我试着只使用董事会的欢乐资源。因此,我将坚持回答中@agermano的建议。