JavaScriptで10の練習問題 #3
複数の数値を入力させ、昇順に並び替え、最大値と最小値を出す
var study_03 = function () { document.getElementById('MyForm').onsubmit = function () { var result = [], length = this.elements.length; // フォームの値取得 for (var i = 0; i < length; i++) { var item = this.elements[i], value = Number(item.value); // テキストフィールドの値が数値で0より大きい if (item.type === 'text' && value > 0) { result.push(value); } } // 結果が0 if (result.length === 0) { alert('数値を入力して下さい。'); return false; } // 昇順ソート result.sort(function (a, b) { return a - b; }); // 結果 alert(result); alert("[max]"+ result.pop() +"\n[min]"+ result[0]); return false; }; };
- form#MyFormのinputから値を動的取得
- Numberで数値にして、0より大きいかどうかの比較でNaNも同時に見分ける
- 後はソートして最高値と最小値を表示して終わり
数値に変換できる値なら全て通るので16進数(0x0000FFなど)も通る。
2進数や8進数はそのまま10進数になる。
だんだん解ってきたので楽しくなってきました。次も頑張りたいと思います。