
javascriptを基礎中の基礎から勉強しており、プログラミング超初心者です。
某書籍(一部、修正を加えています)の演習問題で、
const characters = [
{name: "息子", age: 14},
{name: "爺さん", age: 100},
{name: "弟", age: 5},
];
// for文を完成させてください
for (let i = 0; i < characters.length; i ++) {
console.log("--------------------");
// 定数characterを定義してください
const character = characters[i];
// 「名前は〇〇です」を出力してください
console.log(`名前は${character.name}です`);
// 「〇〇歳です」を出力してください
console.log(`${character.age}歳です`);
}
出力結果は
ーーーーーーーーーーーーーーー
名前は息子です
14歳です
ーーーーーーーーーーーーーーー
名前は爺さんです
100歳です
ーーーーーーーーーーーーーーー
名前は弟です
5歳です
と出ます。
書籍ではこちらが回答になっています。
私の回答は
const characters = [
{name: "息子", age: 14},
{name: "爺さん", age: 100},
{name: "弟", age: 5},
];
// for文を完成させてください
for (let i = 0; i < characters.length; i ++) {
console.log("--------------------");
// 定数characterを定義してください
// 「名前は〇〇です」を出力してください
console.log("名前は" + characters[i].name + "です");
// 「〇〇歳です」を出力してください
console.log(characters[i].age + "歳です");
}
と私は答えました。
出力結果は全く同じでした。
大きな違いは定数characterを定義していない点です。
出力上は同じですがこれは間違いなのでしょうか?
このまま次に進んではまずいのではと思い、不安です。
また、前文ではcharacterを定義しないとエラーになることは確認できましたが、
なぜエラーになってしまうのかがどうしても分かりませんでした。
丁寧に教えていただけると大変助かります。
よろしくお願いします。
No.1ベストアンサー
- 回答日時:
| 出力上は同じですがこれは間違いなのでしょうか?
プログラムの動作が同じだという意味では、間違いではありません。
characterに入れてから、内容を使うのか(本にかいてある方法)
characters配列の内容を直接使うのかの違いですので、
そのあたりは好みの問題になってきます。
ただ、今回は問題に「定数characterを定義してください」とあるので、
定数characterを定義して利用するというのが正解でしょうね。
なるほど!
少しすっきりしました。
考えてみたらもっと発展させて出力させる場合、
chracters[i].nameと入力するより、
最初に定義をさせておいて
character.nameとやる方が出力を沢山要するときに入力する意味で楽なのかなと感じました。
そういう見解は間違っているのかもしれませんが、自分で納得してみます。
ありがとうございました!
No.2
- 回答日時:
> // 定数characterを定義してください
という命題に対して、定義していなければ明らかに間違いです。
テストだと0点
ただし運用上絶対にcharacterがいるかといえばそんなことはありません
ドクターバランシェのように問題を見ると途中式がなく答えが
頭に浮かぶような人ならともかく、論理的な流れを追うような
解説なのでしょうから、この命題では必須でしょう
そうですね、根本的なとこから答えなければならないことに反省しております。
これでも同じ出力なのになぜ…と考えるばかりでずっと手が止まってしまいました。
現段階でこの極短いコードでもつまずくようなレベルなので、論理的に流れを追うような解説をしっかり身に着けるようにします。
アンサーありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript Json のキーと値の出力の違いについて 2 2022/06/14 20:22
- C言語・C++・C# C++プログラミングコードにポリモーフィズムを取り入れ方を教えてください。 2 2023/06/09 11:17
- C言語・C++・C# C言語初心者 構造体 課題について 1 2023/03/10 19:30
- JavaScript Javascriptが機能せず原因が分からないので教えて頂きたいです 3 2023/06/04 14:50
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- その他(プログラミング・Web制作) パイソン初心者です 4 2022/06/29 06:49
- JavaScript sessionStorageを調べています。 1 2023/06/20 12:41
- JavaScript console.logがどうしても2つ機能しないのでアドバイスをくださいお願いします 2 2022/07/07 22:13
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
System.err. printlnとSystem.o...
-
flush()とclose()について
-
javadoc定数フィールド値の文字...
-
Javaで改行などが出来ないのです。
-
一定のスペースを空けて端を揃...
-
JAVAのServletで、画像表示につ...
-
1~100までの数字を表示し、か...
-
Javaで任意のパスへ任意のファ...
-
大容量のテキストファイルの内...
-
テキストエリアで改行する
-
1~100までの数字を表示したい
-
Log4jで機能毎に別ファイルへ出...
-
Log4Jではログを改行できない?
-
InputStreamはreadが1回しかで...
-
Eclipseのコンソールを常に表示...
-
log4jのログ出力先について
-
Webアプリなどで、エクセルを出...
-
StringBufferで改ページ処理を...
-
javaのwhile文で九九の表
-
半角カナが含まれる文字列をフ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
System.err. printlnとSystem.o...
-
Javaで改行などが出来ないのです。
-
1~100までの数字を表示し、か...
-
system.out.printが出力されない
-
1~100までの数字を表示したい
-
System.out.printlnの出力先
-
一定のスペースを空けて端を揃...
-
flush()とclose()について
-
Log4jで機能毎に別ファイルへ出...
-
Tomcatが無応答となる現象が起...
-
行列の表示
-
InputStreamはreadが1回しかで...
-
数字文字列をパック10進数に変...
-
switch分が機能しません。
-
System.out.printlnの意味がよ...
-
JavaScriptの変数をjavaのメソ...
-
Log4Jではログを改行できない?
-
テキストエリアで改行する
-
【SQLServer接続のJSPの記述を...
-
CSVファイルへ出力
おすすめ情報