如何在javascript中填充对象中的数组?

时间:2018-04-20 01:25:45

标签: javascript arrays

我有点困惑。我有以下对象数组:

dataTest.rows = [{
        "rowHeader": "",
        "rowDesc": ["INFO1"],
        "rowVal": [
            ["1", "2", "3", "4", "5", "6", "7", "8", "9"]
        ]
    }, {
        "rowHeader": "",
        "rowDesc": ["INFO2"],
        "rowVal": [
            ["1", "2", "3", "4", "5", "6", "7", "8", "9"]

        ]
    }];

如果rowval(例如在object1中为空),我如何用数组填充数组rowVal中的数组?

我试过

for (i=0; i<9; i++){
  (dataTest.rows[0]).rowVal[0][i]=i;
}

我是否应该完全删除标签'rowVal',然后将其添加到对象中以重建它?

2 个答案:

答案 0 :(得分:1)

var dataTest={};
dataTest.rows = [{
        "rowHeader": "",
        "rowDesc": ["INFO1"],
        "rowVal": [[]]
    }, {
        "rowHeader": "",
        "rowDesc": ["INFO2"],
        "rowVal": [[]]
    }];
for (var i=0; i<dataTest.rows.length; i++){
    // iteriates through the dataTest.rows array of objects
    console.log("Entered row %i",i);
    for (var j=1; j<=9; j++){
        // converts number to string
        dataTest.rows[i].rowVal[0][j]=j.toString();
    	  console.log(dataTest.rows[i].rowVal[0][j]);
    }
}

更新:已修复“dataTest.rows [i] .rowVal [0]未定义。”

答案 1 :(得分:0)

您可以使用.forEach()Array方法遍历数组X中的每个项目并将其推送到数组Y.

let dataTest= [{
    "rowHeader": "",
    "rowDesc": ["INFO1"],
    "rowVal": []
}, 

{
    "rowHeader": "",
    "rowDesc": ["INFO2"],
    "rowVal": [
        ["1", "2", "3", "4", "5", "6", "7", "8", "9"]

    ]
}];

dataTest[1].rowVal.forEach(number => {
                dataTest[0].rowVal.push(number)
                })

在这个例子中,forEach函数遍历dataTest [1] .rowVal中的每个项目,并将dataTest [0] .rowVal中的所有内容推送到数组中,这应该可以实现您的要求。