Javascript 如何通过his索引将项推送到Obj数组
我需要将我的物品推入Obj阵列,现在我多次获得最后一条记录 代码笔:Javascript 如何通过his索引将项推送到Obj数组,javascript,Javascript,我需要将我的物品推入Obj阵列,现在我多次获得最后一条记录 代码笔: const生命点=[“一”、“二”、“三”]; 设remapImages=newarray(); const item=新对象(); 命中率。forEach(函数(i,索引){ item.img=document.getElementById(i); item.hit=document.getElementById(i).offsetTop-window.innerHeight; 控制台日志(项目); 重新包装。推送(项目)
const生命点=[“一”、“二”、“三”];
设remapImages=newarray();
const item=新对象();
命中率。forEach(函数(i,索引){
item.img=document.getElementById(i);
item.hit=document.getElementById(i).offsetTop-window.innerHeight;
控制台日志(项目);
重新包装。推送(项目);
});
控制台日志(remapImages)代码>
- 1
- 2
- 3
您应该创建多个对象,否则会多次推送同一对象引用:
const hitpoints = ["one", "two", "three"];
let remapImages = new Array();
hitpoints.forEach(function(i, index) {
const item = new Object();
item.img = document.getElementById(i);
item.hit = document.getElementById(i).offsetTop - window.innerHeight;
console.log(item);
remapImages.push(item);
});
console.log(remapImages);
由于它是一个引用,它在foreach循环中得到更新,这就是为什么您会多次看到该对象的最新值。Declareitem
在foreach回调函数中。当前,您的代码创建一个对象,该对象在每次迭代中都会得到更新和推送<代码>重新打包。推送(项目)代码>不创建对象的副本。