js在控制台输出指定行数的菱形

137 阅读1分钟

今天上课的时候主讲老师在讲在控制台输出打印菱形,以7行为例讲了一个例子。但是我寻思,这指定的行数会变的呀,要是变了还得一行一行读代码,然后去改,很麻烦。于是 自己琢磨了一个


 function drawDiamond02(totalHang) {                             // totalHang为奇数
        // 打印上部分的等腰三角形
        let i = 0                                                   // 行号  从0开始
        while (i < parseInt(totalHang / 2) + 1) {                   //  上半部分一直到中间行 行号为 parseInt(totalHang / 2) + 1
            let str = ""
            let j = 0
            // 拼接空格
            while (j <= parseInt(totalHang / 2) - i - 1) {          // 找到空格数规律 parseInt(totalHang / 2) - i - 1
                str += " "
                j++
            }
            // 拼接*
            let k = 0
            while (k < 2 * i + 1) {                                 // 找到*数规律 2 * i + 1
                str += "*"
                k++
            }
            console.log(str);
            i++
        }
        let x = 1                                                   // 创建一个辅助数据 x = 1
        while (i < totalHang) {
            let str = ""
            // 拼接空格
            let k = 0
            while (k < i - parseInt(totalHang / 2)) {               // 找到下部分空格数规律 i - parseInt(totalHang / 2)
                str += " "
                k++
            }
            let j = 0
            // 拼接*
            while (j <= parseInt(totalHang / 2) - 1 + totalHang - i - x) {  
                // 找到下部分*数规律 parseInt(totalHang / 2) - 1 + totalHang - i - x
                str += "*"
                j++
            }
            x++
            console.log(str);                                       // 拼接结果
            i++
        }
    }
    drawDiamond02(13)

这样 就能轻松的输出指定行数的菱形在控制台上。 初入前端,希望大家能一起讨论~~