You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mirth Connect 3.7解析全局变量为数组报错:无includes()方法

搞定Mirth Connect 3.7里的数组includes报错问题

嘿,我知道你现在卡在Mirth的destination filter代码上了,报错说数组没有includes()方法对吧?这事儿我之前也碰到过,核心原因很简单:Mirth 3.7用的Rhino JavaScript引擎不支持ES6的includes()方法。

为啥会出这问题?

Mirth Connect 3.7底层用的是Rhino 1.7系列的JS引擎,这个版本对ES6新特性的支持非常有限,而Array.prototype.includes()是ES6才新增的方法,所以Rhino根本不认它。虽然你用split(',')确实把字符串转成了数组,但这个数组是Rhino原生的老版本数组,没有ES6的新方法。

给你几个靠谱的解决方案:

1. 用indexOf()替代(最省心)

indexOf()是ES5就支持的老方法,兼容性拉满。它会返回元素在数组里的索引,找不到就返回-1,改代码就行:

var someValue = 'B'; 
var arr = $('globalVariable'); 
if (arr && arr.split(',').indexOf(someValue) !== -1) { 
    return true; 
} 
return false;

2. 自己写个includes函数(语义化更强)

要是你觉得indexOf()不够直观,也可以自己写个简单的判断函数,逻辑和includes()一样:

var someValue = 'B'; 
var arr = $('globalVariable'); 

function arrayIncludes(arr, value) {
    for (var i = 0; i < arr.length; i++) {
        if (arr[i] === value) {
            return true;
        }
    }
    return false;
}

if (arr && arrayIncludes(arr.split(','), someValue)) { 
    return true; 
} 
return false;

3. 顺便处理下全局变量的空格(防坑)

另外提醒你一句,有时候Mirth的全局变量可能会带前后空格,比如' A,B,C ',split之后会得到带空格的元素,导致匹配失败。可以加个trim()处理:

var arr = $('globalVariable') ? $('globalVariable').trim() : '';

这样就能避免因为空格导致的匹配问题啦。


内容的提问来源于stack exchange,提问作者gitrust

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 08:46:49