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

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

新規登録して質問してみよう
ただいま回答率
85.35%
Maxima

Maximaは、LISPで書かれているオープンソースの数式処理システムです。Macsymaを基礎としており、GNU GPLに基づくフリーソフトウェアとして利用できます。

JavaScript

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

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

ハッシュ

ハッシュは、高速にデータ検索を行うアルゴリズムのことです。

配列

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

Q&A

解決済

1回答

1636閲覧

JavaScript最大値最小値

takeshita0531

総合スコア5

Maxima

Maximaは、LISPで書かれているオープンソースの数式処理システムです。Macsymaを基礎としており、GNU GPLに基づくフリーソフトウェアとして利用できます。

JavaScript

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

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

ハッシュ

ハッシュは、高速にデータ検索を行うアルゴリズムのことです。

配列

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

0グッド

0クリップ

投稿2020/04/09 08:20

編集2020/04/09 08:48
<hr> <p>1年A組試験結果</p> <table border=1 id="table"> <thead> <td>学籍番号</td> <td>名前</td> <td>点数</td> </thead> <tbody> <tr> <td>100</td> <td id="table1">田中</td> <td class="table1" >63</td> </tr> <tr> <td>101</td> <td id="table1">佐藤</td> <td class="table1" >83</td> </tr> <tr> <td>102</td> <td id="table1">鈴木</td> <td class="table1" >20</td> </tr> <tr> <td>103</td> <td id="table1">清水</td> <td class="table1" >93</td> </tr> <tr> <td>104</td> <td id="table1">須藤</td> <td class="table1" >77</td> </tr> <tr> <td>105</td> <td id="table1">石井</td> <td class="table1" >100</td> </tr> <tr> <td>106</td> <td id="table1">森本</td> <td class="table1" >5</td> </tr> </tbody> </table> 平均点 =<p id="ave"></p> <br> 最高得点者 =<div id="max"></div> <br> 最低得点者 =<p id="min"></p> <br>

JavaScriptで上記のtableから要素を取得し平均点を求めることはできたのですが最高得点者、最低得点者を動的に求めることができません。
新たにtableに要素が追加されたときに対応できるようにしたいです。
HTMLにclassやIDの何を追加しても大丈夫です。
よろしくお願い致します。
■■な機能を実装中に以下のエラーメッセージが発生しました。

発生している問題・エラーメッセージ

エラーメッセージ

該当のソースコード

function getData(){ var d=[]; $('table tr').each(function(i, e){ var dd=[]; if (i===0) $(this).find('th').each(function(j, el){dd.push($(this).text())}); else $(this).find('.table1').each(function(j, el){dd.push($(this).text())}); d.push(dd); }); return d; } 表示結果  63832093771005 function getName(){ var b=[]; $('table tr').each(function(i, e){ var bb=[]; if (i===0) $(this).find('#table1').each(function(j, el){bb.push($(this).text())}); else $(this).find('#table1').each(function(j, el){bb.push($(this).text())}); b.push(bb); }); return b; } 表示結果  田中佐藤鈴木清水須藤石井森本 var hash = { name: gg, ten: arr }; var max = (hash.reduce((a,b)=>a.ten>b.ten?a:b).name); $('#max').html(max); var min = (hash.reduce((a,b)=>a.ten<b.ten?a:b).name); $('#min').html(min); ソースコード

試したこと

tableの内容をを配列にしたり最大値、最小値を求めるコードを書いたのですが表示されません。
最高得点者、最低得点者の名前のみ表示したいです。

ここに問題に対して試したことを記載してください。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

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

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

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

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

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

y_waiwai

2020/04/09 08:22

コードを提示しましょう
takeshita0531

2020/04/09 08:50

該当のソースコードにコードを記載しました。
guest

回答1

0

ベストアンサー

こんにちは

いろいろなやり方があると思いますので、あくまで一例として参考になれば幸いです。

javascript

1$(function() { 2 3 4 // データ行から、名前と点数を返すプラグインを作っておく 5 $.fn.getData = function() { 6 return { 7 name: this.find('td:nth-of-type(2)').text(), 8 score: +this.find('td:nth-of-type(3)').text() 9 }; 10 } 11 12 // 集計用オブジェクト 13 const result = { 14 highest: { 15 name: "", 16 score: 0 17 }, 18 lowest: { 19 name: "", 20 score: Number.MAX_SAFE_INTEGER 21 }, 22 count: 0, 23 total: 0 24 }; 25 26 // データ行を一行ずつ取得し、各行のデータから集計値を順次更新 27 $('tbody tr').each(function() { 28 const { name, score } = $(this).getData(); 29 result.total += score; 30 result.count ++; 31 if (score > result.highest.score) { 32 result.highest = { name, score }; 33 } else if (score < result.lowest.score) { 34 result.lowest = { name, score }; 35 } 36 }); 37 38 // 結果の表示 39 $('#average').text(result.total / result.count); 40 $('#highest_name').text(result.highest.name); 41 $('#lowest_name').text(result.lowest.name); 42 43 44}); 45

投稿2020/04/09 09:15

編集2020/04/09 23:03
jun68ykt

総合スコア9058

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

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

takeshita0531

2020/04/09 09:23

ご回答頂きありがとうございます。 とてもわかり易く参考になりました。 ありがとうございます。
jun68ykt

2020/04/09 09:26

どういたしまして > とてもわかり易く参考になりました。 とのことでよかったです????
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問