すべての要素を反復せずにjqueryを使用して配列内の部分文字列を見つける方法はありますか?
私は配列を持っています
arr = ["tree","bird"];
すべての要素を反復せずに、「ird」部分文字列を持つ要素をポップできますか?
部分文字列が表示されるかどうかだけを知りたい場合は、次のようにすることができます。
var arr = ["tree", "bird"];
arr.join("|").match(/tree/); //The "|" is to make sure that the substring is not formed by 2 different words
ところで、これは純粋な Javascript であり、そのために JQuery は必要ありません。
ただし、配列から要素を「ポップ」することはできません。そのためには、そのインデックスを取得する必要があり、そのためには配列を反復処理する必要があります。
問題が1930 からのデータを含む大きな配列としてのパフォーマンス である場合、オートコンプリートのようなことをしていない限り (ユーザーが文字を入力するたびに再検索が必要になります)、最大の問題はデータ転送ではなくクライアント側の処理。
いずれにせよ、大量のデータの場合は client に送信しないでください。計算を行い、結果を取得して返送するサービスを実装します。
サーバー側 (または、クライアント側での実装に非常に執着している場合) で、配列の反復処理中 (またはデータベースの選択中) にパフォーマンスが低下する場合、最善の策はTrie のようなデータ構造です (それはオートコンプリートなどのシナリオで部分文字列検索を実装する最も一般的な方法)。
基本的に、いいえ。
しかし、リスト全体を反復処理することに懸念がある場合は、一致が見つかったらすぐに終了する for ループを使用できます。