当我运行此代码时,变量项仅附加9999个字符,其余部分被截断。我在上一篇文章中得到了一些答案,但问题仍然存在。
var items = [];
for (var i = 1; i < 400; i++) {
items.push('{"Key":' + '"this is a javascript value"' +
",'+'" + '"Value"' + ':' + '"this is value"}');
}
alert(items);
帮助!
答案 0 :(得分:2)
您alert
表示数组转换为String,然后放入警告框。最有可能的是,字符串被切断到某个最大长度,否则由于图形原因它不适合在屏幕上或框中。
当在内存中尝试并且仅警告长度时,一切似乎都正常,toString()
也返回正确的长度。我尝试了4000个元素并分析了长度:http://jsfiddle.net/LWD2h/1/。
答案 1 :(得分:1)
警报的10,000个字符限制有一种解决方法(在FireFox中,在其他浏览器中未经测试)。如果您只想显示警报以进行调试,而不是显示给用户,则可以使用prompt语句。代码看起来像:
var myLongString = "A really long string";
prompt('',myLongString);
当显示时,您只会在提示中看到一行文本,但您可以单击提示框并选择所有文本并将其粘贴到编辑器中以根据需要进行操作。对用户执行此操作会很糟糕,但它对于快速和脏调试非常有用。提示语句会删除所有换行符,因此在调用它之前,您应该将它们转换为其他字符串,然后在文本编辑器中将它们转换回来。
将该代码合并到上面的代码中会给出:
var myLongString= "A\nreally\nlong\nstring\nwith\nline\nfeeds.";
prompt('', myLongString.replace(/\n/g,"=@@=");
将字符串粘贴到文本编辑器后,您将搜索并替换&#39; = @@ =&#39;与&#39; \ n&#39;。