如何过滤具有特定搜索词的数组?例如,我们有一个数组[Tom Harry,Tom John,John Glen,Tom Harward]当我们搜索“ Tom H”时,只有汤姆·哈里(Tom Harry)和汤姆·哈沃德(Tom Harward)作为输出[汤姆·哈沃德,汤姆·哈里];使用JavaScript
var k=0;
filter=[];
var fc=input.charAt(0);
var sc=input.charAt(1);
for(var i=0;i<array.length;i++)
{
if(array[i].charAt(0)===fc)
{
if(array[i].charAt(1)===sc || sc.charAt(1)=="" )
{
filter[k]=[];
filter[k]=array[i];
filter[k]=array[i];
k++;
}
else
{
continue;
}
}
else
{
continue;
}
}
Run Code Online (Sandbox Code Playgroud)
如果您正在使用支持JavaScript 1.6的浏览器,则可以选择Array.filter。您的问题可以通过以下一种方法来解决(当然,您可以通过引入带有search_pattern
参数的函数来概括该问题):
['Tom Harry','Tom John','John Glen','Tom Harward'].filter(function(name){return name.match(/Tom H/);});
Run Code Online (Sandbox Code Playgroud)
如果您希望它也可以在IE8或更低版本的旧浏览器上运行,则可以轻松实现filter
自己(上面的链接包含一个实现)。顺便说一句,建议使用下划线库,该库提供许多集合操作功能,包括filter
。
小智 0
您可以检查 String.match() 或 String.indexOf() 方法。
var s="Tom Harry"
if (s.match(/Tom H.*/)) {
// do something
}
Run Code Online (Sandbox Code Playgroud)
或者你可以使用indexof(),就像
s.indexOf("Tom H")
Run Code Online (Sandbox Code Playgroud)
然后检查索引。如果它 >= 0,则它包含该字符串。
归档时间: |
|
查看次数: |
5970 次 |
最近记录: |