質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

アルゴリズム

アルゴリズムとは、定められた目的を達成するために、プログラムの理論的な動作を定義するものです。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

ループ

ループとは、プログラミングにおいて、条件に合致している間、複数回繰り返し実行される箇所や、その制御構造を指します

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

Q&A

解決済

1回答

541閲覧

Javascript 配列と入力データ ループでデータを出力して、配列に入れる

MiS

総合スコア1

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

アルゴリズム

アルゴリズムとは、定められた目的を達成するために、プログラムの理論的な動作を定義するものです。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

ループ

ループとは、プログラミングにおいて、条件に合致している間、複数回繰り返し実行される箇所や、その制御構造を指します

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

0グッド

0クリップ

投稿2020/09/24 05:23

Javascriptのアルゴリズム、配列と入力データについても質問です。
生徒たちの点数を、クラスごとに入力し、クラスの合計点を出す問題です。
ループを絶対に使用しなければなりません。
下のコードをnodeするとこちらのエラーメッセージが出ます。

どなたかお力かして下さい。

index = (student.class[i] - 200);   ^ TypeError: Cannot read property '0' of undefined

js

1let student = [{ 2 class: 203, //2年3組 3 score: 10 4}, { 5 class: 201, 6 score: 8 7}, { 8 class: 202, 9 score: 7 10}, { 11 class: 203, 12 score: 8 13}, { 14 class: 201, 15 score: 7 16}, { 17 class: 202, 18 score: 7 19}]; 20 21let classScore = [{ 22 studentClass: 'class 1', 23 totalScore: 0 24}, { 25 studentClass: 'class 2', 26 totalScore: 0 27}, { 28 studentClass: 'class 3', 29 totalScore: 0 30}]; 31 32const studentInfo = function (arr) { 33 let index = 0; 34 for (let i = 0; i < arr.length; i++) { 35 index = (student.class[i] - 200); 36 classScore.totalScore[index - 1] += student.score[i] 37 } 38} 39 40studentInfo(student); 41console.log(classScore);

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

student.score[i]など、インデックスを指定する位置がいくつか異なっている箇所があります。
下記の通り実行すれば正常に動作するはずです。

javascript

1let student = [{ 2 class: 203, //2年3組 3 score: 10 4}, { 5 class: 201, 6 score: 8 7}, { 8 class: 202, 9 score: 7 10}, { 11 class: 203, 12 score: 8 13}, { 14 class: 201, 15 score: 7 16}, { 17 class: 202, 18 score: 7 19}]; 20 21let classScore = [{ 22 studentClass: 'class 1', 23 totalScore: 0 24}, { 25 studentClass: 'class 2', 26 totalScore: 0 27}, { 28 studentClass: 'class 3', 29 totalScore: 0 30}]; 31 32const studentInfo = function (arr) { 33 let index = 0; 34 for (let i = 0; i < arr.length; i++) { 35 // index = (student.class[i] - 200); 36 index = (student[i].class - 200); 37 // classScore.totalScore[index - 1] += student.score[i] 38 classScore[index - 1].totalScore += student[i].score 39 } 40} 41 42studentInfo(student); 43console.log(classScore);

投稿2020/09/24 05:27

nekoniki

総合スコア2411

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

MiS

2020/09/24 05:34

できました! ありがとうございます。勉強し始めたばかりなので、すごく助かりました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問