首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用%LIKE% like在数组中搜索

使用%LIKE% like在数组中搜索
EN

Stack Overflow用户
提问于 2014-12-17 01:04:32
回答 3查看 149关注 0票数 0

因为SQLite非常慢,所以我选择所有需要的记录并存储在一个数组中。

现在,在我的应用程序中,我有一个搜索节,用户可以在该数组上搜索字符串的一部分。

我的数组结构是:

代码语言:javascript
复制
[
   {
   name : 'Black',
   family : 'Dragon',
   email : 'black.dragon@blahblahblah.com'
   }
]

我的页面中有3个输入字段,用户可以输入一些字符,我应该在这个数组中进行搜索,并返回匹配值的索引。

例如,如果我的用户输入blalack@blahblah,我的程序应该返回这个值的索引。

有可能吗?我该怎么工作呢?

EN

回答 3

Stack Overflow用户

发布于 2014-12-17 01:18:23

对于像这样的数组操作,UnderscoreLoDash非常方便。

代码语言:javascript
复制
function getMatchingIndex(yourArray, searchTerm) {
  return _.findIndex(yourArray, function(obj) {
    return _.contains(obj, searchTerm);
  });
}
票数 1
EN

Stack Overflow用户

发布于 2014-12-17 01:25:33

如果你使用的是Angular,这可以通过使用过滤器来实现。有一个开箱即用的工具可以做你想要的,甚至在官方教程中也提到了:

https://docs.angularjs.org/tutorial/step_03

如果您想在中继器中过滤数据,只需执行以下操作:

代码语言:javascript
复制
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>
票数 0
EN

Stack Overflow用户

发布于 2014-12-22 02:06:59

您可以使用Alasql JavaScript SQL库来完成此操作。它比SQLite更快,但仍然可以在JavaScript阵列上使用SQL。

代码语言:javascript
复制
var res = alasql('SELECT * FROM ? WHERE email LIKE ?',[data, enter]);

为了提高执行速度,您可以预编译SELECT语句(因此,Alasql不需要花费时间解析SQL语句)。

代码语言:javascript
复制
// Initialization
var mySelect = alasql.compile('SELECT * FROM ? WHERE email LIKE ?');

// Execution time
var res = mySelect([data, enter]);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27510009

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档