データベースから検索するシステムを作成しています。
しかし、配列の判定がうまくいかず、ひたすら次のリストを読み込んでしまいます。
ソースコード
javasctipt
1var subjectlist = ['hoge','huga','piyo','hogepiyo']; 2var resultlist = [""]//結果のリスト 3var searching ="A";//現在検索判定に使われている文字 4// 検索する際は、名前で検索させ、合致したものを別のリストにして表示する 5function search() { 6 var inportsearch = document.getElementById("search").value; 7 var n = 0; 8 while (n=list.length) { 9 searching =(list[n])//現在置かれている文字を取得 10 if (inportsearch.indexOf(list) !== -1) { 11 // 存在する場合はそのリストのテキストを用意した配列に格納 12 searchResult.push(resultlist); 13 console.log(resultlist) 14 } 15 else{//一致しなければ 16 n=n+1;//次のリストを読み込む 17 } 18 } 19}
試してみたこと
変数で条件を指定し、部分一致の検索をする方法を探してみたのですが、部分一致の中で配列内の要素が数字であったり、文字が指定されている場合があり、変数で指定する方法が見つかりませんでした。
なにをしたいか説明してください
subjectlist の配列からsearchというidのinputにユーザーが記入した値を
完全一致で検索?
listってなんでしょう?
whil (n=list.length) は、比較ではなく代入になっていますが、意図通りですか?
また、listへの代入処理がないようですが、何が入っているのでしょうか?
whileのところについては、リストの長さと試行回数が同じ数になるまで繰り返すようにするため、意図通りです。listについては、ソースコードの中の内容を質問をするために一部変更した際に、変数をsubjectlistからlistに誤って変更してしまったものです。コードの中でinportseacrchに代入しているsearchは、HTMLでユーザーが入力した文字の内容です。
何をしたいかについては、タイトルに書いたとおり、"検索条件を変数で指定し、部分一致した要素を別の配列に格納したい"というものです。
もはや釣りではないかと疑っているのですが・・・
具体的なHTMLとそのどの部分から何と比較して、結果としてどうしたいか
明示されることをおすすめします。
代入と比較の違いは理解されているのでしょうか?
理解されていて、代入が意図通りだとしたら、無限ループは、意図して発生させていることになるので、読込みを続けるのは正しい動作かと。
indexof()の引数に配列を指定しているのも謎ですが。
あなたの回答
tips
プレビュー