Javascript 星號(hào)函數(shù)
在JS中,星號(hào)函數(shù)是非常有趣的一種函數(shù),它可以用來(lái)生成各種形狀的星星圖案。這里以一個(gè)簡(jiǎn)單的五角星為例:
function drawStar(n) {
var star = "";
for (var i = 0; i < n; i++) {
for (var j = 0; j < n; j++) {
if (i === 0 || i === n - 1 || j === 0 || j === n - 1 || i === j || j === n - 1 - i) {
star += "* ";
} else {
star += " ";
}
}
star += "\n";
}
console.log(star);
}
drawStar(5);
這段代碼的基本思路是使用兩個(gè)嵌套循環(huán)來(lái)生成星星圖案,具體實(shí)現(xiàn)過(guò)程如下:
- 初始化一個(gè)空字符串star,用于存儲(chǔ)生成的星星圖案。
- 外層循環(huán)使用i變量來(lái)控制行數(shù),內(nèi)層循環(huán)使用j變量來(lái)控制列數(shù)。
- 在每個(gè)坐標(biāo)上,判斷是否需要輸出一個(gè)星號(hào)。如果當(dāng)前坐標(biāo)在圖案的邊界上,或者當(dāng)前坐標(biāo)與圖案的中心點(diǎn)的坐標(biāo)差為偶數(shù),則輸出星號(hào);否則輸出空格。
- 在每行的結(jié)尾處添加一個(gè)換行符,以便輸出格式正確。
- 最后使用console.log()輸出生成好的星星圖案。
使用drawStar(5)函數(shù)調(diào)用可以生成一個(gè)5行5列的五角星圖案:
*
* *
*
* *
*
如果將函數(shù)調(diào)用改為drawStar(7),則可以生成一個(gè)更大的7行7列的五角星圖案:
*
* *
*
* *
* * * *
* *
* *
除了五角星以外,這個(gè)函數(shù)還可以生成其它形狀的星星圖案,如六角星、三角星等等。只需要稍微修改一下條件判斷語(yǔ)句,就可以得到不同的結(jié)果。比如下面這個(gè)函數(shù)可以生成一個(gè)5行5列的六角星圖案:
function drawHexStar(n) {
var star = "";
for (var i = 0; i < n; i++) {
for (var j = 0; j < n; j++) {
if ((i === 0 || i === n - 1 || j === 0 || j === n - 1 || i === j || j === n - 1 - i) || (i === 1 || i === n - 2) && (j === 1 || j === n - 2)) {
star += "* ";
} else {
star += " ";
}
}
star += "\n";
}
console.log(star);
}
drawHexStar(5);
這個(gè)函數(shù)與之前的函數(shù)類(lèi)似,但修改了一些判斷條件,使它只輸出一個(gè)六角星圖案。具體實(shí)現(xiàn)過(guò)程可以參考代碼注釋。
總之,JavaScript星號(hào)函數(shù)是一個(gè)非常有趣的函數(shù),可以用來(lái)生成各種形狀的星星圖案。應(yīng)用場(chǎng)景不限,可以用于網(wǎng)頁(yè)等前端設(shè)計(jì)中,也可以用于游戲中的關(guān)卡設(shè)計(jì)。希望本文對(duì)讀者有所啟發(fā),歡迎大家嘗試使用星號(hào)函數(shù)生成各種有趣的圖案。