是否可以將這三個 for 回圈縮短為一個代碼作業得非常好,我只想知道是否有可能出于鍛煉原因和代碼可讀性將這三個 for 回圈縮短為一個
let board_coord = []
for (let i = 0; i < 3; i ) {
board_coord.push({
x: i * 166,
y: 0
})
}
for (let j = 0; j < 3; j ) {
board_coord.push({
x: j * 166,
y: 166
})
}
for (let k = 0; k < 3; k ) {
board_coord.push({
x: k * 166,
y: 332
})
}
console.log(board_coord)
uj5u.com熱心網友回復:
如果您的意思是單個頂級回圈,則可以使用嵌套回圈:
const SIZE = 166;
let boardCoord = [];
for (let i = 0; i < 3; i ) {
for (let j = 0; j < 3; j ) {
boardCoord.push({ x: SIZE * j, y: SIZE * i });
}
}
我不認為一個單一的回圈整體會比這更具可讀性。
uj5u.com熱心網友回復:
單個回圈需要一點數學知識。(請參閱:余數 (%)和Math.floor())
const boardCoord = [];
for (let i = 0; i < 9; i ) {
boardCoord.push({
x: (i % 3) * 166,
y: Math.floor(i / 3) * 166
})
}
console.log(boardCoord)
還是廣義...
const WIDTH = 3;
const HEIGHT = 3;
const SCALE = 166;
const boardCoord = [];
for (let i = 0; i < WIDTH * HEIGHT; i ) {
boardCoord.push({
x: (i % WIDTH) * SCALE,
y: Math.floor(i / WIDTH) * SCALE
})
}
console.log(boardCoord)
但它不一定比也可以泛化的嵌套回圈更具可讀性。
const COLS = 3;
const ROWS = 3;
const SCALE = 166;
const boardCoord = [];
for (let row = 0; row < ROWS; row ) {
for (let col = 0; col < COLS; col ) {
boardCoord.push({ x: SCALE * col, y: SCALE * row });
}
}
console.log(boardCoord)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/498240.html
標籤:javascript 表现 for循环 短的 代码可读性
下一篇:正則運算式
