[英]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.