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