我正在尝试使用javascript在数组中存储值。但是我在javascript中得到了奇怪的错误。我是我的代码
var a = 1;
for(i=0;i<4;i++)
{
var all = new Array();
all[i]=a;
a++;
}
alert(all[1]);
alert(all[2]);
alert(all[3]);
请在此处查看代码:http://jsfiddle.net/D8Suq/
对于所有[1]和所有[2]我得到未定义的错误..但所有[3]工作正常,,,很困惑。有人请帮帮我
答案 0 :(得分:7)
您在每次循环迭代中重新分配数组(删除其中的所有内容),而不是仅在整个循环之前。
这应该按预期工作:
var a = 1;
var all = new Array();
for(i=0;i<4;i++)
{
all[i]=a;
a++;
}
alert(all[1]);
alert(all[2]);
alert(all[3]);
答案 1 :(得分:2)
您正在重新初始化for循环内的数组,覆盖您之前编写的任何数据。将new Array()
(或更好的[]
(数组文字)移到循环外
答案 2 :(得分:0)
您正在每次迭代时重新创建数组。试试这个:
var all = []; // Moved up, and replaced with bracket notation.
var a = 1;
for(i=0;i<4;i++)
{
all[i]=a;
a++;
}
alert(all[1]);
alert(all[2]);
alert(all[3]);
答案 3 :(得分:0)
您的问题是您在循环的每次迭代中重新实例化一个新数组。所以,第一次,你在该数组中设置一个值。第二次,您将all
变量重新定义为一个全新的数组,这将撤消您在上一次迭代中所做的工作。
最简单的方法就是移动var all = new Array()
并将其放在循环之前。
答案 4 :(得分:0)
您正在重新定义 for循环中的数组。你需要在外面定义它。
var a = 1;
var all = new Array();
for(i=0;i<4;i++)
{
all[i]=a;
a++;
}
alert(all[1]);
alert(all[2]);
alert(all[3]);
答案 5 :(得分:0)
var a = 1;
var all = new Array();
for(i=0;i<4;i++)
{
all[i]=a;
a++;
}
alert(all[0]);
alert(all[1]);
alert(all[2]
答案 6 :(得分:0)
您需要将var all = new Array()放在循环之外。你要创建一个新的全部[]四次。
var a = 1;
var all = new Array();
for(i=0;i<4;i++)
{
all[i]=a;
a++;
}
alert(all[1]);
alert(all[2]);
alert(all[3]);
答案 7 :(得分:0)
尝试一些事情:
const Coin = [
"Heads",
"Tails"];