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;
    };
};
  1. form#MyFormのinputから値を動的取得
  2. Numberで数値にして、0より大きいかどうかの比較でNaNも同時に見分ける
  3. 後はソートして最高値と最小値を表示して終わり

数値に変換できる値なら全て通るので16進数(0x0000FFなど)も通る。

2進数や8進数はそのまま10進数になる。

だんだん解ってきたので楽しくなってきました。次も頑張りたいと思います。