[英]Search in array with %LIKE% like as SQL
由於SQLite非常慢,因此我選擇了所有需要的記錄並存儲在數組中。
現在在我的應用程序中,我有一個搜索部分,用戶可以在該數組上搜索部分字符串。
我的數組結構是:
[
{
name : 'Black',
family : 'Dragon',
email : 'black.dragon@blahblahblah.com'
}
]
我的頁面上有3個輸入字段,用戶可以輸入一些字符,我應該在此數組中搜索並返回匹配值的索引。
例如,如果我的用戶輸入bla
或lack
或@blahblah
,我的程序應該返回這個值的指數。
可能嗎? 我應該如何工作?
如果您使用的是Angular,則可以通過使用過濾器來實現。 開箱即用,可以滿足您的需求,甚至在官方教程中也提到過:
https://docs.angularjs.org/tutorial/step_03
如果要過濾中繼器中的數據,請執行以下操作:
Search: <input ng-model="query">
<ul>
<li ng-repeat="dataItem in dataArray | filter:query">
{{data.name}}
<p>{{data.family}}</p>
<p>{{data.email}}</p>
</li>
</ul>
您可以使用Alasql JavaScript SQL庫來實現。 它比SQLite更快,但仍可在JavaScript數組上使用SQL。
var res = alasql('SELECT * FROM ? WHERE email LIKE ?',[data, enter]);
為了提高執行速度,您可以預編譯SELECT語句(因此,Alasql不需要花時間分析SQL語句)。
// Initialization
var mySelect = alasql.compile('SELECT * FROM ? WHERE email LIKE ?');
// Execution time
var res = mySelect([data, enter]);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.