Javascript 在这里,我试图将数组中的所有对象推送,但它只记住最后一个值,请给出一些建议

Javascript 在这里,我试图将数组中的所有对象推送,但它只记住最后一个值,请给出一些建议,javascript,arrays,object,Javascript,Arrays,Object,这是我的代码,我已经将数据推送到data[],但是所有的数据都显示了相同的内容,这是最后一个 var myObj = {}; var data = []; for (var kl = 0; kl < reportCriteriaIdData.length; kl++) { myObj["id"] = [myId]; myObj[thisobj.scFilterLabel[0]] = [reportCriteriaIdData[kl].text]; myObj["l

这是我的代码,我已经将数据推送到data[],但是所有的数据都显示了相同的内容,这是最后一个

var myObj = {};
var data = [];

for (var kl = 0; kl < reportCriteriaIdData.length; kl++) {
    myObj["id"] = [myId];
    myObj[thisobj.scFilterLabel[0]] = [reportCriteriaIdData[kl].text];
    myObj["label"] = [reportCriteriaIdData[kl].text];
    myObj["index"] = [kl];
    data.push(myObj);
}
var myObj={};
var数据=[];
对于(var kl=0;kl
您需要初始化
for
循环中的空对象,以便每次创建新对象并将其推入数组时:

var data = []; 

for(var kl = 0; kl< reportCriteriaIdData.length; kl++)
{  
  //initialize empty object
  var myObj = {};
  myObj["id"] = [myId];
  myObj[thisobj.scFilterLabel[0]] = [reportCriteriaIdData[kl].text];
  myObj["label"] = [reportCriteriaIdData[kl].text];
  myObj["index"] = [kl];
  data.push(myObj);

}
var数据=[];
对于(var kl=0;kl
您不断将引用推送到同一个对象上,并不断修改该对象。您需要在每个循环迭代中创建一个新的
var myObj={}
。我得到的结果如下:控制器:[“10.106.190.72”]id:[“10.106.190.72”]索引:[1]标签:[“10.106.190.72”]原型:对象1:控制器:[“10.106.190.72”]id:[“10.106.190.72”]索引:[1]标签:[“10.106.190.72”]