我試着翻譯了 「形」(四個方塊組相對座標)的像素網格:JavaScript數學在哪裏出錯?
var grid_center = 6;
var square_size = 20;
l_shape = {
coords: [[-1, 0], [0, 0], [1, 0], [-1, 1]]
}
function draw_shape(shape, grid_location) {
for (coord in shape.coords) {
trans_coord = (grid_location[0] + coord[0]) * square_size;
console.log(trans_coord);
}
}
draw_shape(l_shape, [grid_center - 1, 0]);
預期輸出:
100
120
140
160
實際輸出:
1000
1020
1040
1060
看起來像它可能是自動類型轉換奇怪,但我不知道如何。我所有的數字都是實際的數字,沒有任何字符串被引用。當手動輸入數學,我得到預期的結果:
> (5 + 0) * 20
100
可能有更好的方法來從計算機科學的角度做到這一點,但我不感興趣的那些。我只想知道爲什麼上面的程序無法按預期工作。
'coord in shape.coords'產生'coord'的字符串值。請花時間研究如何調試JavaScript。 – zzzzBov
@zzzzBov RTFM,呃?真正有幫助的,先生。 – eil
@Felix King同樣的答案,但不同的問題。 – eil