さまざまな空白文字だけで構成される複数の文字列を作成しようとしています。私は配列でこれを一度行うことができました。(インデックスの数).join( "");array.splitを使用して複数の空白文字列を作成する
しかし、ループに入り、各文字列に空白を増やす文字列を追加すると、文字列は「未定義」に設定されます。私はどこに間違っているのか分からない。この関数はループの外側では動作するように見えますが、内部では動作しません。私が間違って行ったことは何ですか?
上部にfunction towerBuilder(nFloors) {
// build here
var towers = [];
var stars = "*";
var spaceNo = nFloors -1;
let spaces = Array(spaceNo).join(" ");
spaceNo -= 1;
towers[0] = spaces + stars + spaces;
for(i = 1; i <= nFloors -1; i++)
{
stars = stars + Array(i + 2).join('*');
let edges = Array(spaceNo).join(" ");
towers[i] = edges + stars + edges;
spaceNo -= 1;
}
return towers;
}
console.log(towerBuilder(3));
、これは動作します:
let spaces = Array(spaceNo).join(" ");
をしかし、ダウンループでは、この出力を '未定義の'
let edges = Array(spaceNo).join(" ");
考えはということですタワーを配列から構築できるように、スペースはスターシンボルをラップします。たとえば、呼び出しtowerBuilder(3)以下の出力になります(私はキャリッジリターンと出力にそれをする必要はありません配列だけでは十分であろう。。)
[
' * ',
' *** ',
'*****'
]
* "ただし、ループの中で、これは 'undefined'を出力します。" *あなたが投稿したコードにはありません。私はそれを取り出してStack Snippetにドロップし、あなたが何を記述しているのかは分かりません。問題を示す[mcve]で質問を更新してください(私が行ったようにStack Snippetsを理想的に使っています; [こちらの情報はこちら](https://meta.stackoverflow.com/questions/358992/ive-been-told-to -do-a-runnable-example-with-stack-snippets-how-do-i-do-tha))。 –
あなたはどんな出力を得ていますか?私は、各行で星の周りにスペースを囲むことを期待していますが、私は以下を取得します。 [ "*"、 "***"、 "******" ] –
「未定義」ではありません。あなたの質問は* "これは"未定義 "を出力します*。それはしません。 –