无效的字符串长度/分配大小重载JavaScript

我有一系列复选框,检查它们是否已经过检查,如果有,请在数组中添加一个字符串。 然后我循环遍历字符串数组,并将数组中的字符串添加到以逗号分隔的新字符串中。 不幸的是,这总会导致错误。 在Chrome中,控制台显示“无效字符串长度”。 在Firefox中,错误显示为“分配大小溢出”。

JavaScript的:

// Compile List of Interests interests = new Array(); if ( $("input[name=interestRoofing]").is(':checked') == true ) interests.push("Roofing"); if ( $("input[name=interestSiding]").is(':checked') == true ) interests.push("Siding"); if ( $("input[name=interestGutters]").is(':checked') == true ) interests.push("Gutters"); if ( $("input[name=interestWindows]").is(':checked') == true ) interests.push("Windows"); if ( $("input[name=interestPaint]").is(':checked') == true ) interests.push("Exterior Paint"); interestsString = ""; for ( i = 0; i < interests.length; i++ ) { // "Invalid String Length" in Chrome on This Line interestsString = interestsString + interests[i]; // "Allocation Size Overload" in Firefox on This Line if ( i < interests.length - 2 ) interestsString += ", "; if ( i = interests.length - 2 ) interestsString += "and "; } 

HTML:

 

Interested In:

Roofing

Siding

Gutters

Windows

Exterior Paint

我确信无论出现什么问题,只要我看到它就会打击我,但我整天都在坐这个问题,但还没有提出解决方案。 显然这里有一些我没看到的东西。 任何帮助将非常感激。 奇怪的是,Internet Explorer中的控制台不会吐出任何东西,好像什么都没有出错。 通过在for循环检查的开头添加if语句来确保数组的长度不是0,我可以摆脱Chrome的无效字符串长度错误。但是,Firefox中的错误仍然存​​在,所以这不一定是解决方案。

 if ( i = interests.length - 2 ) interestsString += "and "; 

你在这里做作业。 你可能想要比较。