Javascript 使用JSON的数组推送
有人能告诉我为什么打印117到300的数字吗Javascript 使用JSON的数组推送,javascript,json,Javascript,Json,有人能告诉我为什么打印117到300的数字吗 var x = [12, 55, 177]; var y = [25, 75, 255]; var value = []; for (var i = 1; i <= 300; i++) { value.push(JSON.stringify(i)); document.write(value); } (jsFiddle)之所以这样做,是因为document.write()是一种不应该使用的旧的讨厌的黑客,并且与jsFid
var x = [12, 55, 177];
var y = [25, 75, 255];
var value = [];
for (var i = 1; i <= 300; i++) {
value.push(JSON.stringify(i));
document.write(value);
}
(jsFiddle)之所以这样做,是因为
document.write()
是一种不应该使用的旧的讨厌的黑客,并且与jsFiddle不兼容
如果将其从循环中删除并添加:
console.log(value);
最后,您将看到数组已正确累积
此外,您可能只希望在构建阵列后对其进行JSON编码:
var value = [];
for (var i = 1; i <= 300; i++) {
value.push(i);
}
console.log(JSON.stringify(value));
var值=[];
对于(var i=1;i它之所以这样做,是因为document.write()
是一个不应该使用的旧的讨厌的黑客,并且与JSFIDLE不兼容
如果将其从循环中删除并添加:
console.log(value);
最后,您将看到数组已正确累积
此外,您可能只希望在构建阵列后对其进行JSON编码:
var value = [];
for (var i = 1; i <= 300; i++) {
value.push(i);
}
console.log(JSON.stringify(value));
var值=[];
对于(var i=1;i只需将数组打印移到循环之外,它就会工作:
var x = [12, 55, 177];
var y = [25, 75, 255];
var value = [];
for (var i = 1; i <= 300; i++) {
value.push(JSON.stringify(i));
}
document.write(value);
var x=[12,55,177];
变量y=[25,75,255];
var值=[];
对于(var i=1;i只需将数组打印移到循环之外,它就会工作:
var x = [12, 55, 177];
var y = [25, 75, 255];
var value = [];
for (var i = 1; i <= 300; i++) {
value.push(JSON.stringify(i));
}
document.write(value);
var x=[12,55,177];
变量y=[25,75,255];
var值=[];
对于(var i=1;i首先,这与array.push
或JSON.:-)无关
首先,您的代码不会输出117118
,等等。这就是Chrome为您显示的方式。您似乎在Chrome中遇到了一些内部限制或错误,这些限制或错误与没有空格的行有关。在Firefox中,它不会这样做
基本上,您的代码是重复输出数组,没有任何换行符
1
…在第三个,您输出1,2,3
:
11,21,2,3
…很好地输出
1
1,2
1,2,3
1,2,3,4
1,2,3,4,5
1,2,3,4,5,6
1,2,3,4,5,6,7
1,2,3,4,5,6,7,8
1,2,3,4,5,6,7,8,9
1.
1,2
1,2,3
1,2,3,4
1,2,3,4,5
1,2,3,4,5,6
1,2,3,4,5,6,7
1,2,3,4,5,6,7,8
1,2,3,4,5,6,7,8,9
……等等
console.log
对于在处理东西时查看事物的状态也非常有用。所有最新主流浏览器的开发工具都支持它
还请注意,我已经删除了JSON.stringify
;所做的只是返回索引计数器的字符串版本,在输出中,数组中的数字是真正的数字还是字符串并不重要。首先,这与数组无关。推送或JSON.:-)
首先,您的代码不会输出117118
,等等。这就是Chrome为您显示的方式。您似乎在Chrome中遇到了一些内部限制或错误,这些限制或错误与没有空格的行有关。在Firefox中,它不会这样做
基本上,您的代码是重复输出数组,没有任何换行符
1
…在第三个,您输出1,2,3
:
11,21,2,3
…很好地输出
1
1,2
1,2,3
1,2,3,4
1,2,3,4,5
1,2,3,4,5,6
1,2,3,4,5,6,7
1,2,3,4,5,6,7,8
1,2,3,4,5,6,7,8,9
1.
1,2
1,2,3
1,2,3,4
1,2,3,4,5
1,2,3,4,5,6
1,2,3,4,5,6,7
1,2,3,4,5,6,7,8
1,2,3,4,5,6,7,8,9
……等等
console.log
对于在处理东西时查看事物的状态也非常有用。所有最新主流浏览器的开发工具都支持它
还要注意的是,我已经删除了JSON.stringify;所做的只是返回索引计数器的字符串版本,在输出中,数组中的数字是真正的数字还是字符串并不重要。x和y变量是关于什么的?Pro提示:如果要了解代码的功能,请使用调试器。Th有一个内置在浏览器中。x和y变量是关于什么的?专业提示:如果你想知道你的代码是做什么的,请使用调试器。浏览器中有一个内置的调试器。虽然document.write
确实不理想,但问题不是与jsFiddle不兼容;我只是用一个独立的文件尝试了这一点,它真的很稳定rts与177;关于有一条很长的线或某事……令我惊讶的是,JSFIDLE似乎适合文档。编写:问题在于(除此之外,代码几乎肯定不是OP想要的)似乎是一个Chrome bug,在一个非常长的行中,document.write
没有创建空白。虽然document.write
确实不理想,但问题不是与JSFIDLE不兼容;我只是用一个独立的文件尝试了一下,它实际上是从177开始的;关于拥有一个真正的让我惊讶的是,jsFiddle似乎很适合文档。write
:问题(除了代码几乎肯定不是OP想要的)似乎是一个Chrome bug,它位于非常长的行的边缘,文档中没有空白。write
。