Javascript 将对象推送到数组时,对象中一个特定变量的所有值都将相同
我正在创建将同一个对象推10次到一个数组,但每次它推一次,它都会用+1更改对象内部的一个变量。但是当循环结束时,所有对象中的所有变量都以10结束(相同的值)。为什么会这样 例如:Javascript 将对象推送到数组时,对象中一个特定变量的所有值都将相同,javascript,Javascript,我正在创建将同一个对象推10次到一个数组,但每次它推一次,它都会用+1更改对象内部的一个变量。但是当循环结束时,所有对象中的所有变量都以10结束(相同的值)。为什么会这样 例如: var obj = {} var array = []; for(var i = 0; i < 10; i++){ obj.number = i; array.push(obj); } var obj={} var数组=[]; 对于(变量i=0;i
var obj = {}
var array = [];
for(var i = 0; i < 10; i++){
obj.number = i;
array.push(obj);
}
var obj={}
var数组=[];
对于(变量i=0;i<10;i++){
obj.number=i;
阵列推送(obj);
}
当我那时
console.log(数组)
它返回数组,但所有obj都有相同的编号。这是为什么?您正在数组中推送一个对象,这意味着您正在将一个引用推送到同一个对象;如果你在某处改变你的对象,它会在任何地方改变 您可以: 在每次迭代中创建一个新对象:
var数组=[];
对于(变量i=0;i<10;i++){
var obj={}
obj.number=i;
阵列推送(obj);
}
console.log(数组)代码>您在整个时间内都在更新同一对象移动对象初始化