jQuery 質問スレッド vol.7at HP
jQuery 質問スレッド vol.7 - 暇つぶし2ch999:Name_Not_Found
17/10/21 21:58:17.11 .net
>>979
カラーコードです

1000:Name_Not_Found
17/10/22 04:16:08.98 .net
CSS の黒色
black, #000000, #000

1001:名無しさん@そうだ選挙に行こう! Go to vote!
17/10/22 11:22:39.88 .net
>>978>>980はカラーコードとわかっている
>>979は知らなかったのか知っててあえてそう書いたのか、それが>>980

1002:名無しさん@そうだ選挙に行こう! Go to vote!
17/10/22 13:10:53.90 .net
>>981
わざわざ書き直しまでありがとうございます!
最初動かなくて焦ったのですがunderscoreではなくlodashを使用するのですね
残念ながら初心者のためせっかく教えていただいたコードをどこに差し替えるかも分からないレベルですが
作りたいものは個人的な趣味の範囲なので焦らずじっくり学ばせていただきます
本当にありがとうございました

1003:名無しさん@そうだ選挙に行こう! Go to vote!
17/10/22 14:36:49.57 .net
>>986
> 最初動かなくて焦ったのですがunderscoreではなくlodashを使用するのですね
underscoreと互換性がある機能だけを使ったつもりだったんだが残念。
_() は使えず、_.chain() と書かないといけないのと
_.containsで文字列が使えないんだな。
lodashの方がおすすめだが、underscore版を作っておいた。
URLリンク(jsfiddle.net)
あとさほど大きくは変わらんのだが、ES6対応とl
odash専用になるがテンプレートを書き換えた。
URLリンク(jsfiddle.net)

1004:名無しさん@そうだ選挙に行こう! Go to vote!
17/10/22 19:01:02.80 .net
結局965は破綻したのか

1005:Name_Not_Found
17/10/23 06:33:52.94 .net
次スレ
jQuery 質問スレッド vol.8
スレリンク(hp板)

1006:Name_Not_Found
17/10/25 10:32:03.29 .net
>>987
遅くなりましたが本当にありがとうございます
お金払うレベルかと思うほど親身にして下さって感謝しています
お陰様でなんとかAND検索に差し替えることもできました
助かりました、本当にありがとうございました

1007:Name_Not_Found
17/10/25 23:14:09.98 .net
親身っていうかあれやな。
元のコードが挫折するほど汚かったらやる気なくなったがそこまでじゃないし、
汚くはないけど、なんかやり方間違ってるなー感があったので
どこまで減らせるかネタとして面白かったからやっただけやな。
運が良かっただけだ。

1008:977
17/10/26 15:11:54.26 .net
>>991
981=987さんでしょうか
スレが埋まるのに甘えてもう一つだけお尋ねします
URLリンク(jsfiddle.net)
このjsの最後の「テキストボックス絞り込み関数」で、名前または説明文の中に検索単語が含まれている場合に一覧を絞り込むようになっていますが
説明文(description)をタグのように[ ]でくくって複数記述していた場合、説明文からの結果が一致しないとみなされて0になってしまいます
「description」を「tag」に置き換えた場合に、テキストボックスに「類」と打つと哺乳類・鳥類・魚類・昆虫類の結果が出るようにしたいといえば伝わるでしょうか
「_.includes」を自分なりにeachをつけてみたりintersectionに変更してみたりしましたが勉強不足でうまくいきません
部分一致で結果を引っ張るためにはどうしたら良いでしょうか

1009:Name_Not_Found
17/10/27 00:50:20.44 .net
>>992
まず最初に、wordsの名前が良くなかった。keywordsという名前に変更する
URLリンク(jsfiddle.net)
最後の行、コードが重複してるなーって思っていたわけよ
(同様に word も keyword に変更している)
_.includes(item.title, keyword) || _.includes(item.description, keyword);
この部分。_.includesが二回でてる。keywordが二回出てる。気に食わない。
が、二回程度なら諦めるか。でこういうコードにした。
そこに今回さらにdescriptionが配列になる(descriptions)わけでもっと複雑になるわけだ
じゃあここで発想を変えよう。
最終的には、titleかdescriptions[0]かdescriptions[1]かdescriptions[N]のどれかに
入っていればOKということになるわけだ。
ってことはだ。
words = [item.title, item.descriptions[0], item.descriptions[1],...,item.descriptions[N]]
という配列を作っておき、この配列の文字列の何処かに含まれていればOKってことになるわけだよ。
あとは、wordsの配列の中のword文字列の中にkeywordが含まれているか?
ということで、
_.includes(item.title, keyword) || _.includes(item.description, keyword);
と等価なのは
var words = [item.title, item.description];
return _.some(words, function(word) { return _.includes(word, keyword) });
ということになる。
URLリンク(jsfiddle.net)

1010:Name_Not_Found
17/10/27 01:05:22.75 .net
ただよ? これでも動くけど
これってkeywords(入力されたキーワードをスペース区切りって作った)配列と
[title, descriptiuon] 配列の全部の組み合わせを・・・
ここで気づいた。lodashにproduct関数ねぇのかよ!
例えば、["title", "description"] に ["a", "i"]のいずれかが含まれているか?っていうのは
2つの配列の全組み合わせ
"title" include? "a"
"title" include? "i"
"description" include? "a"
"description" include? "i"
となるわけだよ。これをproductとかいう関数に食わせれば話は早いんだが、ないなら仕方ない。
とりあえず今回は、順番を変えるだけで済ませよう。
return _.some(keywords, function(keyword) {
 return _.some(words, function(word) {
  return _.includes(word, keyword)
 });
});
これでkeywordsとwordsの総当りに対して、includesを実行することになるわけだ。
URLリンク(jsfiddle.net)

1011:Name_Not_Found
17/10/27 01:30:38.60 .net
あとは、wordsの部分だけだな
var words = [item.title].concat(item.description);
これだけでOK

ついでにkeywordsに分割する部分の正規表現が無駄だったので修正
URLリンク(jsfiddle.net)
ついでにこの_.escapeはいらないと思うので削除
URLリンク(jsfiddle.net)
あとやっぱりproduct使わないと見づらいので
URLリンク(www.npmjs.com) つかった
URLリンク(jsfiddle.net)
そしてfilterByKeyword�


1012:ヨ数だけES6にしてみた https://jsfiddle.net/3cnkcyjk/22/



1013:977
17/10/28 11:34:18.59 .net
本当にありがとうございます
月並みな感謝の気持ちしか書けず申し訳ないです
全てを理解できるレベルには達していませんが一つ一つページ確認させてもらいました
参考にしてようやくやりたかった内容が完成しました
キーワード検索もバッチリで気持ちがいいです
(他板のスレに投稿したところスレ住民も便利だと喜んでくれました)
大変お世話になりました、ありがとうございました

1014:Name_Not_Found
17/10/28 21:56:28.70 .net
次スレ
jQuery 質問スレッド vol.8
スレリンク(hp板)

1015:Name_Not_Found
17/11/01 05:43:03.78 .net
t

1016:Name_Not_Found
17/11/01 05:43:23.64 .net
v

1017:小倉優子
17/11/01 05:43:39.74 .net
  ∧,,,∧ 
 (  ・∀・) 1000ならジュースでも飲むか
  (    ) 
  し─J 

1018:1001
Over 1000 Thread.net
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 363日 17時間 52分 5秒

1019:過去ログ ★
[過去ログ]
■ このスレッドは過去ログ倉庫に格納されています


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch