のは、私はこのようなオブジェクトの巨大な(1000 +)のリストを持っていると仮定しましょう:JavaScriptでJSONオブジェクトのリストをフィルタリングする最高のパフォーマンス方法は何ですか?
[{name: 'john dow', age: 38, gender:'m'}, {name: 'jane dow', age: 18, gender:'f'}, ..]
は、私は名前(文字賢明)で、このリストをフィルタリングします。
filter('j') => [{name: 'john dow', age: 38, gender:'m'}, {name: 'jane dow', age: 18, gender:'f'}, ..]
filter('jo') => [{name: 'john dow', age: 38, gender:'m'}, ..]
filter('dow') => [{name: 'john dow', age: 38, gender:'m'}, {name: 'jane dow', age: 18, gender:'f'}, ..]
これを行うには最高のパフォーマンス方法はありますか? RegExは、ユーザーが通常最初から名前を始める傾向があると想定している場合は、あらかじめリストを並べ替えることをお勧めしますが、場合によっては役立ちます。
フィルタをマッピングするJavaScript組み込み関数はありますか?私はそれらがJavaScriptの実装よりも速いことを期待しています。
P.S .:はい私は提供したい "オフライン機能"のためにクライアント側でフィルタしたいと思います。 substring index(例えばSuffix treeとしては)この速くなるだろうが
実際にJavaScriptのオブジェクトであれば、もはやJSONではありません。 「JSON」は、ネットワーク全体にその情報を転送するための記法(または場合によってはそれを格納するための表記)です。 JavaScriptプログラムの中では、単純に「JavaScriptオブジェクト」です(エンコードされたJSONデータが含まれている文字列について話している場合を除き、その場合はJavaScriptオブジェクトに変換してから使用する必要があります)。 –
"ohn"を検索するとどうなりますか? –
@JoachimSauerあなたは正しいです..私はそれを修正しました;) フィルター( 'ohn')=> [{name: 'john dow'、年齢:38、性別: 'm'}、..] – wzr1337