2015-09-05 50 views
-2

我正在做一個作業的二十一點遊戲,並有排行榜和卡陣列。輸出一個3D數組作爲表

我想打印這樣的排行榜。卡(在單個單元格中)|總。

幫助,將理解的是,得益於

function makeTable(leaderBoard) { 
    var table = document.createElement('table'); 
    for (var i = 0; i < leaderBoard.length; i++) { 
     var row = document.createElement('tr'); 
     for (var j = 0; j < leaderBoard[i].length; j++) { 
      var cell = document.createElement('td'); 
      cell.textContent = leaderBoard[i][j]; 
      row.appendChild(cell); 
     } 
     table.appendChild(row); 
    } 
    document.getElementById('leaderBoard').innerHTML = table; 
} 
+0

你已經做了什麼? –

回答

0
function makeTable(leaderBoard) { 
    var table = document.createElement('table'); 
    var row = document.createElement('tr'); 
    for (var i = 0; i < leaderBoard[0].length; i++) { 
     var cell = document.createElement('td'); 
     cell.textContent = leaderBoard[0][i]; 
     row.appendChild(cell); 
    } 
    var cell = document.createElement('td'); 
    cell.textContent = "Total: " + leaderBoard[1]; 
    row.appendChild(cell); 
    table.appendChild(row); 
    document.getElementById('leaderBoard').appendChild(table); 
} 

var userCards = ["Card 1", "Card 2", "Card 3"]; 
var userTotal = 10; 
makeTable([userCards, userTotal]); 

http://jsfiddle.net/25kg3nnq/

+0

這是結果 - [對象HTMLTableElement] –

+0

這是數組leaderBoard = [[usercards] [usertotal]] –

+0

你可以舉一個例子條目和你想要的輸出嗎? –

0

也許示例輸入不是以正確的格式,但再利用一個預定義的表和HTML表的功能,如insertRow和insertCell(不一定更好,但它們可以比createElement和append更容易):

<div id="leaderBoard"><table id=leaderTable></table></div> 

function updateleaderboard(leaderBoard) {  
    var table = document.getElementById('leaderTable'); 
    while(table.rows.length > 0) table.deleteRow(0); //remove prev values, if any  
    for (var i = 0; i < leaderBoard.length; i++) { //If the function is always used on a winner (no ties), the loop isn't really needed 
     var row =table.insertRow(); 
     var arrCards = leaderBoard[i++]; 
     var total = row.insertCell(); 
     total.className = 'res'; 
     total.textContent = leaderBoard[i]; 
     arrCards.forEach(function(c,ind){ 
      row.insertCell(ind).textContent = c; 
     }); 
    } 
} 

var cards = [['Q','4','5'],19]; 

updateleaderboard(cards); 

Fiddle