Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/435.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
循环迭代计数的Javascript不起作用_Javascript_For Loop - Fatal编程技术网

循环迭代计数的Javascript不起作用

循环迭代计数的Javascript不起作用,javascript,for-loop,Javascript,For Loop,我试图通过for循环将一些对象推入数组。尽管如此,在for循环中,我希望对象的名称是for循环的当前迭代。下面显示的for循环运行两次,因此第一个对象的Name变量应为1,第二个对象的Name变量应为2。但是,在本例中,无论出于何种原因,该数组中的两个对象都返回名称值2。有人知道为什么会这样吗 var ThisArray=[]; var ThisObj={}; 对于var x=1;x您只需将ThisObj的Name属性的值重新指定给一个新值。它是一个引用,因此每次要添加新项时都需要创建一个新实例

我试图通过for循环将一些对象推入数组。尽管如此,在for循环中,我希望对象的名称是for循环的当前迭代。下面显示的for循环运行两次,因此第一个对象的Name变量应为1,第二个对象的Name变量应为2。但是,在本例中,无论出于何种原因,该数组中的两个对象都返回名称值2。有人知道为什么会这样吗

var ThisArray=[]; var ThisObj={};
对于var x=1;x您只需将ThisObj的Name属性的值重新指定给一个新值。它是一个引用,因此每次要添加新项时都需要创建一个新实例。将变量声明移动到for循环中:


您只是将ThisObj的Name属性的值重新指定给一个新值。它是一个引用,因此每次要添加新项时都需要创建一个新实例。将变量声明移动到for循环中:


您总是在数组中推送相同的对象,因此第二次迭代也将编辑先前插入的对象;相反,您应该这样做:

var obj= {};
for(let x= 1; x<= 2; x++){
    obj= {};
    obj.name = x;
    arr.push(obj);
}
console.log(arr);

您总是在数组中推送相同的对象,因此第二次迭代也将编辑先前插入的对象;相反,您应该这样做:

var obj= {};
for(let x= 1; x<= 2; x++){
    obj= {};
    obj.name = x;
    arr.push(obj);
}
console.log(arr);

始终添加相同的对象。在循环内移动对象:

常量thisArray=[];
对于设x=1;x您总是添加相同的对象。在循环内移动对象:

常量thisArray=[];
对于设x=1;你的问题是你推了两次同一个物体

以下是您想要的:

var ThisArray=[];
对于var x=1;你的问题是你推了两次同一个物体

以下是您想要的:

var ThisArray=[];
对于var x=1;x使用let x=1,而不是varUse使用let x=1,而不是varus非常感谢!我会投赞成票,但我的分数还不够。非常感谢!我会投赞成票,但我的分数还不够。非常感谢!我也会投票,但我还没有足够的分数。非常感谢!我也会投赞成票,但我还没有足够的分数。
for(let x= 1; x<= 2; x++){
    arr.push({name : 2});
}
console.log(arr);