欢迎光临
我们一直在努力

实现console.log打印不换行,九九乘法表,金字塔,倒三角,菱形

Javascript下console.log默认是换行的。

以九九乘法表为例进行举例:

在node下输出:

方法一:将所要输出的字符串,拼接到一行内,然后输出

let str;
for (let i = 1; i < 10; i++) {
    str = '';
    for (let j = 1; j<=i; j++) {
         str += i + " × " + j + ' = ' + i * j +"\t";
    }
    console.log(str);
}

方法二:使用nodejs process对象:process.stdout.write()。

for (let i = 1; i < 10; i++) {
    for (let j = 1; j<=i; j++) {
        process.stdout.write(i + " × " + j + ' = ' + i * j +"\t");
    }
    console.log("\r");
}

在window下html及Console端打印输出

方法三:在win窗口下可使用:document.write()。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>九九乘法表</title>
    <script>
        let str;
        for (let i = 1; i < 10; i++) {
            str = '';
            for (let j = 1; j<=i; j++) {
                str += i + " × " + j + ' = ' + i * j +"\t";
                document.write(i + " × " + j + ' = ' + i * j +"&emsp;");
            }
            console.log(str + "\r");
            document.write("<br>");
        }
    </script>
</head>
<body>

</body>
</html>

打印金字塔、菱形、倒三角

在window下html及Console端打印输出

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>打印类型 a:金字塔,b:倒三角,c:菱形</title>
    <script>
        /**
         * 根据要求输出批定形状
         * @param type      打印类型 a:金字塔,b:倒三角,c:菱形
         * @param starNum   星星数量
         * @param star      星星形状
,默认是*,其它形状打印出来效果可能不理想
         * @param blank     空格
         */
        function star(type = 'a', starNum = 5, star = '*', blank = ' ') {
            switch (type) {
                case 'a':
                    for (let i = 1; i <= starNum; i++) printStar(i, starNum, star, blank)
                    break;
                case 'b':
                    for (let i = starNum; i > 0; i--) printStar(i, starNum, star, blank)
                    break;
                case 'c':
                    for (let i = 1; i < starNum; i++) printStar(i, starNum, star, blank)
                    for (let i = starNum; i > 0; i--) printStar(i, starNum, star, blank)
                    break;
                default:
                    for (let i = 1; i <= starNum; i++) printStar(i, starNum, star, blank)
            }
        }

        /**
         * 打印星星
         * @param i
         * @param starNum   打印的行数
         * @param star
         * @param blank
         */
        function printStar(i, starNum = 5, star = '*', blank = ' ') {
            let strA = '';
            let strB = '';
            for (let j = starNum - i; j > 0; j--) {
                strA += blank;
                document.write('&nbsp;&nbsp;');        // win下输出
            }
            for (let k = 1; k <= 2 * i - 1; k++) {
                strB += star;
                document.write(star);         // win下输出
            }
            console.log(strA + strB);
            document.write('<br>');
        }

        star('c',10)  // 最终输出
    </script>
</head>
<body>

</body>
</html>

方法二:使用nodejs process对象:process.stdout.write()。

/**
 * 根据要求输出批定形状
 * @param type      打印类型 a:金字塔,b:倒三角,c:菱形
 * @param starNum   星星数量
 * @param star      星星形状
 * @param blank     空格
 */
function star(type = 'a', starNum = 5, star = '*', blank = ' ') {
    switch (type) {
        case 'a':
            for (let i = 1; i <= starNum; i++) printStar(i, starNum, star, blank)
            break;
        case 'b':
            for (let i = starNum; i > 0; i--) printStar(i, starNum, star, blank)
            break;
        case 'c':
            for (let i = 1; i < starNum; i++) printStar(i, starNum, star, blank)
            for (let i = starNum; i > 0; i--) printStar(i, starNum, star, blank)
            break;
        default:
            for (let i = 1; i <= starNum; i++) printStar(i, starNum, star, blank)
    }
}

/**
 * 打印星星
 * @param i
 * @param starNum   打印的行数
 * @param star
 * @param blank
 */
function printStar(i, starNum = 5, star = '*', blank = ' ') {
    let strA = '';
    let strB = '';
    for (let j = starNum - i; j > 0; j--) {
        strA += blank;
        // document.write('&nbsp;&nbsp;');  // win下输出
        process.stdout.write(blank);        // node下输出
    }
    for (let k = 1; k <= 2 * i - 1; k++) {
        strB += star;
        // document.write(star);            // win下输出
        process.stdout.write(star);         // node下输出
    }
    // console.log(strA + strB);            // 单独console输出时需要

    console.log("\r");
    // document.write('<br>');              // win下输出

}

star('c', 10)  // 输出
赞(3)
版权归原作者所有,如有侵权请告知。达维营-前端网 » 实现console.log打印不换行,九九乘法表,金字塔,倒三角,菱形

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址