繁体   English   中英

javascript;在数组中存储值

[英]javascript;storing values in array

我正在尝试使用 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/

对于 all[1] 和 all[2] 我收到未定义的错误..但是 all[3] 工作正常,我很困惑。请有人帮助我

您将在每次循环迭代中重新分配数组(这会删除其中的所有内容),而不是仅在整个循环之前进行分配。

这应该可以正常工作:

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]);

您正在重新初始化for循环内部的数组,覆盖先前写入的所有数据。 new Array() (或更好的[] ,数组常量)移动到循环外

 var all = [];
    for (i = 0; i <= 4; i++) {
      let element = i;
      all.push(element);
    }
    alert(all[1]);
    alert(all[2]);
    alert(all[3]);
    alert(all[4]);

尝试一些类似的事情:

const Coin = [
  "Heads",
  "Tails"];

您将在每次迭代中重新创建数组。 尝试这个:

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]);

这里的问题是,您需要在循环的每次迭代中重新实例化一个新的Array。 因此,第一次在该数组中设置一个值。 第二次,您将all变量重新定义为一个全新的数组,这将撤消您在上一次迭代中所做的工作。

最简单的方法是将var all = new Array()移到循环之前。

您正在重新定义你的数组的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]);
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]

您需要将var all = new Array()放入循环之外。 您正在创建一个新的all []四次。

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]);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM