2012-07-13 64 views
0

當前,該腳本從列表中獲取單詞並生成一個網格,每次給出單詞隨機位置。當生成這些單詞時,我希望它們被分成單獨的字符,並放入彼此相鄰的單元格中 - 我該怎麼做?使用數組的隨機子集生成表格

var listOfWords = ["mat", "cat", "dog", "pit", "pot", "fog", "log", "pan", "can", "man", ]; 
    var shuffledWords = listOfWords.slice(0, 12); 
    shuffledWords.sort(function() { 
    return 0.5 - Math.random(); 
}); 

var table = $('<table class="tablestyle">'); 
var rows = 6; 
var cols = 2; 
var tr; 
var index; 

for (var row = 0; row < rows; row++) { 
tr = $('<tr>'); 
for (var col = 0; col < cols; col++) { 
    index = (row * cols) + col; 
    $('<td>').text(shuffledWords[index]).appendTo(tr); 
} 
tr.appendTo(table); 
} 

table.appendTo('body'); 

$('<table>' + innerTable + '</table>').appendTo('body'); 

回答

1

在切片之前嘗試對列表進行排序。像這樣

listOfWords.sort(function() { 
    return 0.5 - Math.random(); 
}); 
var shuffledWords = listOfWords.slice(0, 12); 
+0

這樣使用'sort'不是一個好主意。它期望比較函數對相同的參數返回相同的結果,這可能會導致意外且難以發現的錯誤。 – RoToRa 2012-07-13 11:51:35

+0

排序功能只是從上面複製而來。所有改變的都是訂單。 – Inkbug 2012-07-13 11:53:13

0
<script type="text/javascript"> 
var html = "<table border='0' width='100%'>"; 
html += "<tr> <td> Search ID </td> <td> Name </td> <td>Location</> <td> Reason </td></tr>" 
html += "<tr> <td> 1 </td> <td> Bob </td> <td>Glasgow</> <td> Hello </td></tr>" 
html+="</table>"; 

$('#outputID').append(html); 
</script> 

凡說

<td> Bob </td> 

"<td>" + varibleName + "</td>" 

而且varible名稱可能是每一個字符替換?只要把它放在一個適合的循環中?

希望這可以幫助