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

时间:2018-03-30 10:53:38

标签: 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["label"] = [reportCriteriaIdData[kl].text];
    myObj["index"] = [kl];
    data.push(myObj);
}

1 个答案:

答案 0 :(得分:0)

您需要在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);

}