我有類似的東西,但更大。來自對象陣列的Javascript表格
[{
"votes":200,
"invalid_votes":140,
"valid_votes":60,
"voting_section":{"level":2, "zone1":"US", "zone2":"Delaware"}
},
{
"votes":300,
"invalid_votes":40,
"valid_votes":260,
"voting_section":{"level":3, "zone1":"US", "zone2":"California", "zone3":"Los Angeles"}
}]
我想花幾個小時把這個數組轉換成表。
我的目標是把表中的第一列的最後區域(在本例中2區和3區)在voting_section(例如,第一列將有2行:特拉華州和洛杉磯
在該表中的標頭,我希望把所有其他屬性(票,invalid_votes,valid_votes)
的交點將用值來完成:
所以它必須是這樣的:
在這裏,我有我的代碼,到目前爲止,但我不認爲我是在一個良好的方向發展:
function createTableKeyValue2(arrObjects, parentDiv) {
var elTable = document.createElement("table");
elTable.className = "table table-striped table-bordered";
var elTableBody = document.createElement("tbody");
for (var i = 0; i < arrObjects.length; i++) {
var elTableRow = document.createElement("tr");
var elTableDataKey = document.createElement("td");
elTableDataKey.innerHTML = arrObjects[i];
var elTableDataValue = document.createElement("td");
elTableDataValue.innerHTML = arrObjects[i];
//elTableDataValue.id = arrObjects[i].key.split(' ').join('_');
elTableRow.appendChild(elTableDataKey);
elTableRow.appendChild(elTableDataValue);
elTableBody.appendChild(elTableRow);
}
elTable.appendChild(elTableBody);
parentDiv.append(elTable);
}
var votingSection = function(zone) {
var voting_section = [];
var level = zone[0].voting_section.level;
for (var i = 0; i < zone.length; i++) {
voting_section.push(zone[i].voting_section['zone' + level]);
}
return voting_section;
};
createTableKeyValue(votingSection(zone2), resultsTableDiv);
resultTableDiv是在DOM節點。
你能表現出一定的工作?你有什麼嘗試? –
我編輯了這個問題的代碼 – Alexandru
已經有相當一部分。以下是我爲https://stackoverflow.com/questions/44224584/adding-data-rows-dynamically-from-a-json-object-using-javascript/44224673#44224673和https://做出答案的一個答案stackoverflow.com/questions/43648618/creating-table-like-structure-with-spanned-rows-using-css/43649959#43649959 –