我有以下代码:
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"}]
非常感谢帮助!
答案 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' />