我正在尋找解決此問題以在 nodejs 命令列中列印 * 啟動模式。這是我在nodejs中寫的代碼
var readlineSync = require('readline-sync');
const input = readlineSync.question('Enter a number')
for (var i = 0; i <= input; i = i 1){
for(var j = 0; j <= i; j ){
console.log('*')
}
console.log()
}
我在 repl.it 中得到的輸出:
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
預期輸出:
*
**
***
****
*****
uj5u.com熱心網友回復:
Console.log 添加了一個新行,您必須為其創建字串和連接星號。
for (var i = 0; i < 5; i = i 1) {
let star = "";
for (var j = 0; j <= i; j ) {
star = "*";
}
console.log(star);
}
您也可以使用 padEnd 函式來解決這個問題。
const n = 5;
for (var i = 1; i <= n; i = i 1) {
const stars = Array(i 1).join("*");
stars.padEnd(n);
console.log(stars);
}
uj5u.com熱心網友回復:
console.log總是將資料放在新行中 在回圈之前設定一個字串j,添加到該回圈中的字串,然后在該循??環之后添加該console.log字串
var readlineSync = require('readline-sync');
const input = readlineSync.question('Enter a number')
for (var i = 0; i <= input; i = i 1){
var tempStr=""
for(var j = 0; j <= i; j ){
tempStr ="*"
}
console.log(tempStr)
}
uj5u.com熱心網友回復:
這是一個具有經典 readline、一個回圈和一個陣列的作業解決方案:
(async () => {
const readline = require('readline');
const rl = readline.createInterface({ input: process.stdin , output: process.stdout });
const input = await new Promise(resolve => {
rl.question("Enter a number ", resolve)
})
for (var i = 0; i <= input; i ){
console.log(Array(i).fill('*').join(''))
}
})()
解釋:
我們使用 readline 包來讀取輸入,我們使用 IIFE 來使用異步等待功能并等待用戶輸入,這要歸功于 await 在輸入變數中決議。
然后我們創建一個具有回圈長度的陣列,我們填充星號并加入以創建到 console.log 的字串。
希望有幫助!
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/476257.html
標籤:javascript 节点.js
上一篇:ReactJS-更改CSS類屬性
