我试图从原始点导出网格上的 4 个点。这些包括左,右,下和上一个单位。
如果我从[4, 5]
我的输出开始应该是[3, 5] [5, 5] [4, 4] [4, 6]
.
我可能可以查找如何做到这一点,但我一直在使用自己的方法,我认为我的逻辑是合理的,但是我在 JavaScript 本身遇到了一个简单的问题,当我声明时var tempArr = cords;
,从那时起,任何变化tempArr
似乎正在影响cords
. 我以前从来没有遇到过这个问题,这是代码。
var output = [],
cords = [4, 5];
var convertToCords = function(i){
var tempArr = cords;
var offset = ( ( i%2 ) * 2 ) - 1, // -1, 1, -1, 1
index = Math.floor(i/2); // 0, 0, 1, 1
tempArr[index] = cords[index] + offset;
return tempArr;
}
for (var i = 0; i < 4; ++i){
console.log(cords);
newCords = convertToCords(i);
var x = newCords[0],
y = newCords[1];
array[i] = "[" + x + ", " + y + "]";
}
console.log(output);
tempArr[index] = cords[index] + offset;
问题:任何人都可以发现为什么当我对 做某事时tempArr
也会cords
受到影响?我应该tempArr
以其他方式声明吗?