如何在javascript中创建并将大量字符串元素推入数组而不出错

如何在javascript中创建并将大量字符串元素推入数组而不出错,javascript,arrays,string,Javascript,Arrays,String,我使用下面的函数获取一个大的字符串数组(用户名)并检查它们是否有单引号,然后将它们放入我的新数组并返回 最近,此列表中的用户数量急剧增加(目前为7418),现在此函数出现错误: 原因:java.lang.ClassFormatError:方法代码长度无效 105684类文件org/mozilla/javascript/gen/c135516 javascript版本嵌入到应用程序中,因此目前无法升级 有更好的方法吗?或者用另一种方法来避免这个错误 function listExcludedUse

我使用下面的函数获取一个大的字符串数组(用户名)并检查它们是否有单引号,然后将它们放入我的新数组并返回

最近,此列表中的用户数量急剧增加(目前为7418),现在此函数出现错误:

原因:java.lang.ClassFormatError:方法代码长度无效 105684类文件org/mozilla/javascript/gen/c135516

javascript版本嵌入到应用程序中,因此目前无法升级

有更好的方法吗?或者用另一种方法来避免这个错误

function listExcludedUsers(rInactive) {
    var result = new Array('user1', 'user2', 'user3', 'user4');

    for (var i = 0; i < rInactive.length; i++) {
        //replace single quote with two single quotes for DQL
        if (rInactive[i].indexOf("'") > 0) {
            rInactive[i] = rInactive[i].replace(/'/g, "''");
        }
        result.push(rInactive[i]);
    }
    return result;
}
函数ListExcludeUsers(rInactive){
var result=new数组('user1','user2','user3','user4');
对于(变量i=0;i0){
rInactive[i]=rInactive[i]。替换(/“/g,”);
}
结果:推(rInactive[i]);
}
返回结果;
}

JVM将方法的长度限制为65536字节,因此您似乎在Mozilla中发现了一个bug。请将其存档(如有可能,请附上示例)至


同时:尝试将你的方法分成多个较小的部分,例如:切碎输入,将其放入几个较小的数组中,并将最后的数组连接起来。你应该用几个不同的
函数来实现它。

这段代码看起来像是在运行一个jvm,它不需要很长的方法名,这些方法都是因为你提供的JavaScript输入,如果能重现这个情况就好了,我想


尝试更改JavaScript代码的输入,这会导致jvm中的这些方法太长,可能存在多组输入。

原因:java.lang.ClassFormatError
是一个
java
错误,而不是
JavaScript
错误。所以我不认为,
ListExcludeUsers
与此有关。根据我使用此应用程序的经验,通常是javascript导致java失败,但您是正确的。可能您可以使用object来代替数组,比如:如果数组真的只包含7418个条目,这应该不是问题。请看这个JSFIDLE,它创建了一个包含10000个条目的数组,在其上循环并用2个单引号替换每个单引号。这应该不会导致此类问题。好吧,我需要将初始列表拆分为较小的列表,并将它们加入到我的函数中?更好:在几个函数中,使用另一个函数将它们全部加入到最终数组中。但这是一次尝试!不能保证它会工作,但这是一个在几分钟内完成的快速破解,因此值得尝试。