是否可以将值从对象的数组列表动态附加到对象中?

时间:2020-07-13 18:28:38

标签: javascript jquery arrays

好的,所以我这里有点放屁。

在下面的代码中,test的长度是未知的,根据用户的决定,其范围可以从1到任意数字。

下面包含一个test的样本值。在下面的代码中,我手动将test的值添加到表对象中。但是,由于test的长度不是固定的,因此我正在寻找一种更动态的方法,但无法弄清楚该怎么做。

例如: 假设test的长度为3。我希望将test的所有3个值自动添加到表中,而无需进行任何手动操作。

测试样本值:

var test = []
for (var i = 0; i <= 5; i++) {
    test.push([
        { text: 'Test1', italics: true, fontSize: 11 },
        { text: '2', alignment: 'center', fontSize: 11 },
        { text: '1', alignment: 'center', fontSize: 11 },
    ])
}

表对象:

{
    table: {
        widths: ['50%', '25%', '25%'],
        headerRows: 1,
        body: [
            [{
                text: 'MES Module Name',
                bold: true,
                fillColor: 'lightgray',
                style: 'tableHeader'
            }, {
                text: 'Marks - Theory',
                bold: true,
                alignment: 'center',
                fillColor: 'lightgray',
                style: 'tableHeader'
            }, {
                text: 'Marks - Practical',
                bold: true,
                alignment: 'center',
                fillColor: 'lightgray',
                style: 'tableHeader'
            }],
            test[0],
            test[1],
            test[2],
            test[3],
            test[4],
        ]
    }
},

1 个答案:

答案 0 :(得分:0)

您可以尝试这个。

  • 初始化table.body = [];
  • 然后使用table.body.push({});向其中添加新对象。
table.body = [];
for(var i=0; i<objectsToAdd.length; i++){
    table.body.push(objectsToAdd[i]);
}