javascript;在数组中存储值

时间:2012-03-30 23:15:05

标签: javascript

我正在尝试使用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]工作正常,,,很困惑。有人请帮帮我

8 个答案:

答案 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"];