Javascript 如何在定义索引的数组上使用array.push?

Javascript 如何在定义索引的数组上使用array.push?,javascript,Javascript,如何使用array.push在数组中添加具有自定义索引的对象 我有这个脚本,但它不工作。Chrome的Javascript控制台没有输出错误 var tempList = new Array(); $('#add').click(function(){ var split = $('#itemid').val().split('_'); var itemid = split['0']; var lbs = $('#lbs').val(); tempList.push(tempLi

如何使用array.push在数组中添加具有自定义索引的对象

我有这个脚本,但它不工作。Chrome的Javascript控制台没有输出错误

var tempList = new Array();
$('#add').click(function(){
  var split = $('#itemid').val().split('_');
  var itemid = split['0'];
  var lbs = $('#lbs').val();
  tempList.push(tempList['itemid'] = lbs);
  for (var i; i<=(tempList.length - 1); i++){
    if (i==0){
      var list = tempList[i]+ '<br />';
    } 
    else{
      var list =  list + tempList[i]+ '<br />';
    }
  }
  alert(list);
});
var templast=new Array();
$('#添加')。单击(函数(){
var split=$('#itemid').val().split('#');
var itemid=split['0'];
var-lbs=$('#lbs').val();
push(templast['itemid']=lbs);

对于(var i;i旧答案:您的脚本可能无法工作,因为您必须初始化循环的索引:
var i=0;

问题(新增,在评论链中):

您好,希望您不介意另一个问题,但我如何显示屏幕 表中的
模板列表[]
的内容

回答
请参阅下面的代码。在循环之后,我介绍了几种将数据/表附加到正文的方法,因为您没有指定所需的方法

var tempList = {};
$('#add').click(function(){
    var split = $('#itemid').val().split('_');
    var returnTable = "<thead><tr><th>ItemId</th><th>Lbs</th></tr></thead><tbody>";
    var itemid = split[0];
    if(/^\d+$/.test(itemid)) return; //itemId is not a valid number: return now.

    var lbs = $('#lbs').val();
    tempList[itemid] = lbs; //refer by value, removed quotes around `itemId`.
    for (var i in tempList){
        returnTable += "<tr><td>" + i + "</td><td>" + tempList[i] + '</td></tr>';
    }
    returnTable += "</tbody>";


    var tbl = document.createElement("table");
    tbl.innerHTML = returnTable;

    //Various methods to add the table to your document are shown below
    // For each example, I assume that that specific element exists

    //When the data should be APPENDED to an existing TABLE ("#existingTable")
    var tblTo = document.getElementById("existingTable").tBodies[0];
    for(var i=0, len=tbl.tBodies[0].rows.length; i<len; i++){
        tblTo.appendChild(tbl.tBodies[0].rows[0]);
        //Removes the row from the temporary table, appends row to tblTo
    }

    //When the new table should replace the previous table ("#prevTable"):
    var prevTbl = document.getElementById("prevTable");
    prevTbl.parentNode.replaceChild(tbl, prevTbl);

    //When the table should be APPENDED to a container ("#container")
    document.getElementById("output").appendChild(tbl);

    //When the new table should replace the contents of a container ("#container")
    var container = document.getElementById("container");
    container.innerHTML = "";
    container.appendChild(tbl);
});
var templast={};
$('#添加')。单击(函数(){
var split=$('#itemid').val().split('#');
var returnTable=“ItemIdLbs”;
var itemid=split[0];
如果(//^\d+$/.test(itemid))return;//itemid不是有效数字:立即返回。
var-lbs=$('#lbs').val();
tempList[itemid]=lbs;//按值引用,删除了“itemid”周围的引号。
for(圣殿骑士中的var i){
returnTable+=''+i+''+圣堂武士[i]+'';
}
returnTable+=“”;
var tbl=document.createElement(“表”);
tbl.innerHTML=返回表;
//将表格添加到文档中的各种方法如下所示
//对于每个示例,我假设特定元素存在
//当数据应追加到现有表(“existingTable”)时
var tblTo=document.getElementById(“existingTable”).tBodies[0];

for(var i=0,len=tbl.tBodies[0].rows.length;我在“for循环”中已经有一个了,我必须在循环外再做一个吗?我已经缩进了你的代码,看到:
for(var i;iThanks for)。我尝试将其更改为i=0,但它仍然没有任何作用。是零件模板列表。push(模板列表['itemid']=lbs正确,我怀疑这就是问题所在?如果您解释脚本的预期结果,我将为您优化代码。单击“添加”按钮时,它存储itemid(作为索引)和lbs(作为值),然后显示对象(itemid和lbs)在警报框中的数组内部。因此,如果单击“添加”3次,将在数组中显示3个对象。