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 +" ");
}
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(' '); // 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(' '); // 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) // 输出