Mirth对Javascript使用Rhino引擎,在JVM的一些早期版本中,indexOf似乎在阵列上不受支持。由于将我们的JVM升级到1.6.23(或更高版本),indexOf已经开始工作。但是,我们仍然有,搜索字符串数组的时候,我只是用一个循环,每次遗留代码:
var compareString = "blah";
var index = -1;
for (var i = 0; i < myArray.length; ++i)
{
if (myArray[i] == compareString)
{
index = i;
break;
}
}
如果你需要频繁地做到这一点,你应该能够使用代码模板手动添加indexOf函数给Array。
设置代码模板,全球访问,并尝试像这样(未测试的代码):
Array.prototype.indexOf = function(var compareObject)
{
for (var i = 0; i < myArray.length; ++i)
{
// I don't think this is actually the right way to compare
if (myArray[i] == compareObject)
{
return i;
}
}
return -1;
}
来源
2012-10-11 03:03:09
csj
这个方法给我一个错误。我们使用的是Java 6,build 23和Mirth 1.8.2。如果你使用的是更新的东西,请告诉我。 – csj 2012-10-12 06:53:53
我正在使用最新的快乐(2.2.1)。 – 2012-10-12 23:45:52
原来是6.23之前的JVM在这里被打破了。在多玩一些并比较Java版本之后,我可以说我们的indexOf工作在6.23或更高版本。我认为它在6.04左右的时候还处于破裂状态。 – csj 2012-12-08 00:16:06