迭代javascript对象并动态添加对象属性(JS对象中的键值对)

时间:2015-08-28 16:43:55

标签: javascript object for-loop

我不确定此问题是否已经得到解答。虽然我没有发现任何与我想要的相关性。这是原始代码。

function addrow() {
                  var row = {
                             name: null,
                             city: null,
                             Contact: null,
                             location: null             
                  };

                  $("#jqxgrid").jqxGrid('addrow', null, row, 'first');
}

此功能通过单击功能执行后,此代码会向网格表添加一个新行。它会创建一个空行。列名称是名称,城市,联系人和位置。所有这些列条目行都获得空值,空行被添加到网格中。

我想让这个充满活力。即无论列名和列数如何,它都应该为我创建一个空行。例如。如果只有2个名称为Name和Age的列名,则应创建一个包含2个空单元格的行。

我试过这样的东西让它变得动态。

var headers= $line_array. 

我从后端传递给前端的数组中获取动态列标题名称。因此列标题存在于名为headers的数组中。然后我添加了这个

for(key in row) { headers[key]=null,};
$("#jqxgrid").jqxGrid('addrow', null, row, 'first'); 

所以最终的addrow()函数看起来像这个

function addrow() {

var headers= $line_array;

var i;
var key = headers.length;
var row = {}; // create empty object. we can add header names inside this row for display.

for(key in row) { 
    headers[key]=null,};
    $("#jqxgrid").jqxGrid('addrow', null, row, 'first');
}

有人可以告诉我,我在这里犯了什么小错误吗?

1 个答案:

答案 0 :(得分:-1)

我很高兴我自己找到了答案。虽然来自@MaxZoon和@RicharGrant的输入帮助我理解了可能存在的问题。

如果此代码可以帮助任何人,我会很高兴。这里是。

function addrow() {
    var headers= $line_array;
    var i;
    var key = headers.length;
    var row = {};

    for (i=0; i <headers.length; i++) {
                                       row[headers[i]]=null;
    }

    $("#jqxgrid").jqxGrid('addrow', null, row, 'first');
}

就是这样。就这么简单。我只需要看看如何将键/值对分配给Javascript对象。谢谢大家。