2017-01-09 35 views
-2

我想要生成一个数字网格(10 x10),其中第一行将以随机顺序编号1-10,第一列将以随机顺序1-10。里面的数字将以各种方式基于边缘上的这些数字进行计算。我的问题是关于这个数据的组织/结构。跨行/列访问和进行计算的最佳方式是什么?它是10个数组,每个包含10个元素还是json对象?我被卡住了,因为最初只有toprow和第一列会随机生成。网格上的其余数字将被计算。请告知如何处理它。谢谢JavaScript - 存储数字网格

+1

[有没有这样的事情一个“JSON对象”](http://benalman.com/news/2010/03/theres-no-such-thing-as-a-json/)。不要将JavaScript对象与JSON混淆。 –

+0

显示一些代码。你在做什么数独板? –

+0

这将是类似于时间表 – Wasteland

回答

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'); 
 
})
th{ 
 
    width:40px; 
 
    }
<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>

+0

非常感谢。我会看看我是否可以从代码中拿走任何东西。我只是问如何组织它以便于计算。我还没有任何代码,因为我使用Reactjs和Redux,但在我编写代码之前,我需要规划如何在redux中构造'状态'。因此我的问题。目前我只是询问最简单的数据结构以便于计算。编码我应该没问题。 – Wasteland

+0

那么这是不是真正的论坛要求理论,你应该尝试其他[Stack Exchange论坛](http://stackexchange.com/sites)。 @Wasteland如果您发现我的代码有用,请立即投票。 – happymacarts