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