试图让我的头脑绕过这个数学。我有一个网格,我想远远知道该区块是从中心。
我有一个功能,目前如下:
let grid = [];
function buildGrid(c, r) {
for(let i = 1; i <= r; i++) {
for(let j = 1; j <= c; j++) {
}
}
}
buildGrid(5, 3);
我希望它输出到网格的内容如下:
let grid = [{x: -2, y: -1},
{x: -1, y: -1},
{x: 0, y: -1},
{x: 1, y: -1},
{x: 2, y: -1},
{x: -2, y: 0},
{x: -1, y: 0},
{x: 0, y: 0},
{x: 1, y: 0},
{x: 2, y: 0},
{x: -2, y: 1},
{x: -1, y: 1},
{x: 0, y: 1},
{x: 1, y: 1},
{x: 2, y: 1}];
或者
-2, -1 | -1, -1 | 0, -1 | 1, -1 | 2, -1
-------|--------|-------|-------|-------
-2, 0 | -1, 0 | 0, 0 | 1, 0 | 2, 0
-------|--------|-------|-------|-------
-2, 1 | -1, 1 | 0, 1 | 1, 1 | 2, 1
任何帮助将不胜感激。
答案 0 :(得分:1)
对buildGrid(5, 3)
或buildGrid(7, 5)
或buildGrid(5, 3)
等正流量的回答,意味着大于1的偶数,不添加其他条件。我假设你可以自己做这件事。如果您获得并发布与样本数据共享的所有条件。
function buildGrid(c, r) {
var c_less = (c-1)/2;// You need to modify here to add all condition
var r_less = (r-1)/2;// You need to modify here to add all condition
//console.log(c_less);
var newArr = [];
for(let j = -r_less; j <= r_less; j++) {
var str = [];
for(let i = -c_less; i <= c_less; i++) {
str.push({x:i,y:j});
}
newArr.push(str);
}
document.querySelector("#output").innerHTML = JSON.stringify(newArr);
console.log(newArr);
}
buildGrid(5, 3);
&#13;
<div id="output"></div>
&#13;
var c_less = (c-1)/2;
//您需要在此修改以添加所有其他条件