Javascript数组循环创建多个数组而不是1个数组

时间:2018-02-17 08:50:33

标签: javascript arrays

我有以下代码:

var arrAllBaseJSON = [];
for(var i=0; i < totalCols; i++) {
    var heading = document.getElementById("heading"+i).value;
    var dataType = document.getElementById("dataType"+i).value;
    arrAllBaseJSON['Heading'] = heading;
    arrAllBaseJSON['Type'] = dataType;
    arrAllBaseJSON.push();
    console.log(arrAllBaseJSON)
}

这会在控制台中生成以下内容。

[Heading: "ID", Type: "Text"]
[Heading: "First Name", Type: "Text"]
[Heading: "Last Name", Type: "Text"]
[Heading: "Month", Type: "Text"]
[Heading: "Cost", Type: "Text"]
[Heading: "DOB", Type: "Text"]

我希望输出为一个数组,每个循环都用大括号包围:

[{Heading: "ID", Type: "Text"},
{Heading: "First Name", Type: "Text"},
{Heading: "Last Name", Type: "Text"},
{Heading: "Month", Type: "Text"},
{Heading: "Cost", Type: "Text"},
{Heading: "DOB", Type: "Text"}]

非常感谢帮助!

3 个答案:

答案 0 :(得分:3)

试试这个

let arrAllBaseJSON = []
for(let i = 0; i < totalCols; i++) {
  let heading = document.getElementById("heading"+i).value;
  let dataType = document.getElementById("dataType"+i).value;
  arrAllBaseJSON.push({
    heading,
    dataType
  });
}

答案 1 :(得分:0)

您需要在循环内创建一个新对象并将其推入数组中。

var arrAllBaseJSON = [];
for (var i = 0; i < totalCols; i++) {
 var heading = document.getElementById("heading" + i).value;
 var dataType = document.getElementById("dataType" + i).value;
 var obj = {};
 obj['Heading'] = heading;
 obj['Type'] = dataType;
 arrAllBaseJSON.push(obj);
}
console.log(arrAllBaseJSON)

答案 2 :(得分:0)

以下是如何做到这一点:

//remove this
var totalCols = 3
var arrAllBaseJSON = [];
for(var i=0; i < totalCols; i++) {
  var heading = document.getElementById("heading"+i).value;
  var dataType = document.getElementById("dataType"+i).value;
  arrAllBaseJSON.push({
    heading: heading,
    dataType: dataType
  });
}

console.log(arrAllBaseJSON);
<input type='text' id='heading0' value='ID' />
<input type='text' id='dataType0' value='Text' /><br/>
<input type='text' id='heading1' value='First Name' />
<input type='text' id='dataType1' value='Text' /><br/>
<input type='text' id='heading2' value='Last Name' />
<input type='text' id='dataType2' value='Text' />