このようにテーブル(配列内の配列)の「セル」を出力することになっているcodecademyチュートリアルに取り組んでいます
Cell Cell Cell
各セルの間に 2 つのスペースがあります。結果(最初の「行」の場合)は次のようになると想定しています
Person Age City
「行」の最後にスペースがあってはなりません。
codecademy からの指示 (以下にコピー) に従おうとして、悲惨な for ループを以下に書きましたが、動作させることができません。誰か手を貸してくれませんか...
var table = [
["Person", "Age", "City"],
["Sue", 22, "San Francisco"],
["Joe", 45, "Halifax"]
];
for (var r in table) { ////// I wrote this for statement
var c;
var cells = table[r];
var rowText = "";
for(c = 0; c < cells; c++){
rowText += table[r][c];
if(c < cells - 1){ //only adds the space if not at end of line
rowText += " ";
}
}
console.log(rowText);
}
Codecademy.com からの指示
次の形式で 3 つの行のそれぞれを出力できるように、別の for ループといくつかの書式設定コードを追加します。
セルセルセル
各セル値の間には 2 つのスペースが必要ですが、行末にはスペースを入れないでください。各行は別々の行にある必要があります。
詳細な手順は、演習のヒントにあります。
for ループの本体にある console.log ステートメントを削除します。for ループの本体で、変数 c を定義します。また、cells という名前の変数を定義し、現在の行の長さと等しくなるように設定します (これは table[r] で確認できます)。rowText という名前の空の文字列変数を定義します。rowText が "" に設定されていることを確認してください。ステップ 2 の変数の直後に別の for ループを定義します。
最初のループ パラメーターで、c を 0 に設定します。2 番目のループ パラメーターで、c がセルより 1 つ少ない後にループが停止することを確認します。3 番目のループ パラメータで、c をインクリメントします。手順 3 のループの本体で、現在のセル (table[r][c] で見つけることができます) を rowText に追加します。c が行の最後のセルの位置でない場合 (c がセル - 1 より小さい場合は true)、if ステートメントを使用して 2 つのスペース文字 (これは " ") を rowText に追加します。ステップ 3 ですが、最後の演習のループ本体の内部で、console.log を使用して rowText を出力します。