var fruits = ['apple', 'apricot', 'avocado', 'blueberry', 'cherry', 'coconut', 'cranberry'];
(省略) function appendList(word) { var item = $('<li class="list">').append(word); list.append(item); $("#submit").on("click", function() { var input = $("#keyword").val(); var reg = new RegExp("^" + input); $(".list").remove(); $.each(fruits, function(i, fruit) { if (fruit.match(reg)) { appendList(fruit); (省略)
ここでの
$.each(fruits, function(i, fruit) { if (fruit.match(reg)) { appendList(fruit);
という部分で
matchはregexpを引数にとってマッチするものがあれば配列で戻り値を返すということまでわかりました。
次の行ではappendList(fruit)でマッチしたものを引数として関数を呼び出しています。
ただ、ここでわからないのが
ifだとそもそもtrueかfalseの分岐ではないのでしょうか?
fruit.match(reg)で配列が帰ってきたとしたら自動でtrue扱いですか?
また戻り値として帰って来る配列は何処に格納されるのでしょうか?
matchの呼び出し元のfruitに格納されるのでしょうか?
appendList(fruit);の呼び出したあとの挙動から見るに、
配列そのままをappendListに引数としてもっていっているというよりもfruitsという配列の値の文字列を持たせているようにしか思えないのですが
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/11/12 09:27
2016/11/12 09:48