我想生成一个数字网格(10 x10),其中顶行按随机顺序为数字1-10,第一列按随机顺序为1-10。内部数字将根据边缘上的数字以各种方式计算。我的问题是关于这些数据的组织/结构。跨行/列访问和计算它们的最佳方法是什么。它是10个数组,每个10个元素或json对象?我被卡住,因为我最初只有toprow和第一列将随机生成。将计算网格上的其余数字。请告知如何处理它。谢谢
答案 0 :(得分:1)
我把单个细胞的计算留给了你
我使用了帖子shuffle
中引用的随机播放功能
var hdrAry = new Array(), hdrAry2 = new Array(), tenCols = "<td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td>";
function shuffle(array) {
// [shuffle](https://stackoverflow.com/questions/2450954/how-to-randomize-shuffle-a-javascript-array)
var currentIndex = array.length, temporaryValue, randomIndex;
while (0 !== currentIndex) {
randomIndex = Math.floor(Math.random() * currentIndex);
currentIndex -= 1;
temporaryValue = array[currentIndex];
array[currentIndex] = array[randomIndex];
array[randomIndex] = temporaryValue;
}
return array;
}
function buildHead(table_id) {
buildArys();
$('table#'+table_id).html('<thead><tr><th></th></tr></thead><tbody>');
for(i=0; i<10; i++){
$('table#'+table_id+' thead tr').append('<th class="text-center">'+hdrAry[i]+'</th>');
$('table ').append('<tr><th>'+hdrAry2[i]+'</th>'+tenCols+'</tr>')
}
$('table#'+table_id).append('</tbody>');
}
function buildArys(){
//clear the arrys 1st
hdrAry = [];
hdrAry2 = [];
//add numbers 1-10 to both arrays
for(j=1; j<11; j++){
hdrAry.push(j);
hdrAry2.push(j);
}
//now shuffle them up
shuffle(hdrAry);
shuffle(hdrAry2);
}
$(document).ready(function() {
buildHead('sb');
})
&#13;
th{
width:40px;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id="test" onclick="buildHead('sb')">Generate Header</button>
<table border=1 id="sb" class="table table-bordered table-striped" >
</table>
&#13;