jQueryでアプリケーションを作る

前回載せたアプリケーションが完成したので、

今回は作成したアプリケーションについてお話ししたいとおもいます。

 

[アプリケーション概要] どんなアプケーションか?

まず作成したアプリがどのようなものか説明したいと思います。

まずは以下のgifを見てください。

f:id:lilybelly:20180924171114g:plain

検索ボックスに入力した文字と一致するフルーツが検索できるアプリケーション

こんな感じで、検索ボックスに文字を入力すると一致するフルーツ名が検索結果として表示されます。

 

アプリケーションに必要な機能

上記のようなアプリケーションを実現するために必要な機能をまとめておきます。

  1. 入力された言葉に一致するものを表示
  2. 一致するものがなかった場合に「一致するものがありませんでした」と表示
  3. 一部の言葉で検索する
  4. 複数の言葉で検索
  5. インクリメンタルサーチ(値が入力されるたびに検索)

だいたいこのような機能が備わったアプリケーションです。

 

次で完成コードを載せるので、コードを見ながら順に追って行こうと思います。

完成コード

これが完成版です。

復習ができるようにプログラムのコード内のコメントアウトで説明がされてるので見てみてください。

 

f:id:lilybelly:20180925191202p:plain

index.html

f:id:lilybelly:20180925191048p:plain

main.js


動作の流れ

実際にこのコードが読み込まれるとどのようにプログラミングが実行されていくか書いてみます。上の画像と照らし合わせながら見ていきましょう。

 

[1行目]

まず入力した値と照らし合わせるために今回は配列を生成し、配列の中にフルーツ名をあらかじめ入れてあります。

 

[6行目〜18行目]

そしてここで変数と関数を定義してます。

8〜12行目でタグの変更によって結果を表示する処理が書いてあります。

14〜18行目で配列の要素のそれぞれに変更を行なっています。(これは後で呼び出されるので、そのときに説明します)

[22行目〜43行目]

ここから処理が行われています。

22行目で検索ボックスに入力していくたびに検索が行われるようにkeyupというイベントを利用します。

 

24行目で配列を排除できるfilterを利用して、インクリメンタルサーチによるスペースも配列の中に入ってしまう現象を解決しています。

 

27〜29行目で一部の文字で検索できるように正規表現で前方一致を行なっています。

 

33行目でeachを使って、fruitsという変数の中にあらかじめ入れたフルーツ名と一致するものを検索する動作をし、

39行目で一致するものがない場合は「一致する果物がありませんでした」と表示されるようになっています。

 

必要なメソッド

今回のアプリ作成において初めて知ったメソッドがいくつかあったのでまとめたかったんですが、

なかなか時間が取れないので今日はここまで。

後日まとめていきたいと思います。

 

まとめ

このくらいのアプリケーションなら、jQueryを初めて学習しましたがそんなに時間をかけずに作れるような気がしました。

少しずつプログラミングのインプット作業に慣れてきたのかもしれないです。

明日から自分でブログアプリを作ろうと思っているので、それについて書いていきたいです。