ログイン

問題6 入力された値を小さい順に並べよう!

jQueryAnimationの問題

jQueryAnimation

入力された値を小さい順に並べよう!

問題

今回は数値の並べ替えをしましょう!
デモのように昇順で入力された三つの値を並べ替えてください。

自分の環境に書くコード

              <input type="number" id="1" placeholder="ここに数字を入力">
<input type="number" id="2" placeholder="ここに数字を入力">
<input type="number" id="3" placeholder="ここに数字を入力">
<button>入力完了</button>
<p>昇順で並べます</p>
<div class="box"></div>
¥HTML¥
            

期待する画面

ログインして解答を見る
コードのアイコン

解答ソースコード

              $(function () {
  $("button").click(function(){
    var num1 = $("#1").val(),
          num2 = $("#2").val(),
          num3 = $("#3").val(),
          numbers=[num1,num2,num3],
          numberLength = $('input[type="number"]').length;
    for(var i=0;i<numberLength;i++){
      for(var k=i+1;k<numberLength;k++){
        if(numbers[i]>numbers[k]){
          var save=numbers[i];
          numbers[i]=numbers[k];
          numbers[k]=save;
        }
      }
    }
    $(".box").text(numbers[0]+","+numbers[1]+","+numbers[2]);
  });
});
¥JavaScript¥
            
答えのアイコン

解説

まずボタンがクリックされることをトリガーにします。そしてinputにそれぞれidが指定されているのでそのvalueをそれぞれ変数に代入します。その変数を前から配列に代入してそれを最後に並び替え、それをboxで表示するという流れです。今回の肝となるのは並べ替えの部分だと思います。for文を2個使って総当たりするようにしています。そして大きいものを後ろに小さいものを前にくるように変数saveを使って一時的に数値を保存しその空いたところに入れ替わる数値を代入しています。そしてsaveによって保存されていた数値をもう一方に代入しています。
完了にする!
LINEの友達追加でお役立ち動画をGET!!