如何访问对象的密钥'值?希望从对象数据填充表

时间:2014-12-28 02:05:43

标签: javascript arrays

上下文:javascript新手,并尝试创建学生贷款计算器webapp进行练习。目前正在进行第3部分"您可以在哪里提交贷款,贷款余额和利率;并且在您添加它们时,将填充一份包含您提交的贷款的表格。

  1. 在表单提交中,输入数据用于使用对象构造函数创建新对象(loanObj)。该新对象被推送到一个数组(loanArray)进行存储。
  2. 在表单提交上,我想要一个表格来自动填充loanObj的数据。我尝试通过遍历loanArray来计算每个对象,然后迭代每个对象的键,沿途创建表行和单元格。
  3. 到目前为止,除了访问密钥值之外,我能够做所有这些事情。即它输出' undefined'而不是5000和5%等

    以下是与我的问题相关的代码片段:

            for (var i = 0; i < loanArray.length; i++) {
              //create table row for each loan object in array
              var tr = document.createElement('tr');
    
              //create table cell for each loan property (keys)
              var loanKeys = Object.keys(loanArray[i]);
              for (var j = 0; j < loanKeys.length; j++) {
                var td = document.createElement('td');
                //create text node for key data
                td.appendChild(document.createTextNode(loanKeys[j].value));
                tr.appendChild(td); 
              }
            tableBody.appendChild(tr);
            }
    

    完整的小提琴是:http://jsfiddle.net/v5goLto9/1/

    请帮助一个菜鸟!并随时给我反馈我的代码结构/逻辑/整体!

1 个答案:

答案 0 :(得分:0)

您可以直接迭代对象值,而无需使用键,如下面的代码所示:

for (var i = 0; i < loanArray.length; i++) {
          //create table row for each loan object in array
          var tr = document.createElement('tr');

          //create table cell for each loan property (keys)
         
          for (var j in loanArray[i]) {
            var td = document.createElement('td');
            //create text node for key data
            td.appendChild(document.createTextNode(loanArray[i][j]));
            tr.appendChild(td); 
          }
        tableBody.appendChild(tr);
        }