2

我有一堆用来过滤信息的链接,见:http: //i.imgur.com/Huoqb.png

当您单击链接时,我会将其添加到数组中。例如:

Venue>All = venue-0, Venue>Home = venue-1, Venue>Away = venue-2, 
Vs>All = vs-0, Vs>Lefties = vs-1, Vs>Righties = vs-2
 etc, etc, etc.

如果用户单击任何类别中的“全部”,我想搜索整个数组并删除包含该类别的所有项目。例如:myArray['venue-1','venue-2','vs-1']...单击Venue>all、删除'venue-1''venue-2'离开myArray['vs-1']

我可以使用正则表达式来执行此操作,例如:/^venue/并根据您单击的“全部”更改单词吗?

我知道我需要组合使用$.inArrayorindexOf()和,splice()但我无法让它发挥作用。

4

3 回答 3

1

您可以使用该$.grep实用程序简单地执行此操作:

var someArray = [1, 2, 3];

var numbersGreaterThanOne = $.grep(someArray, function(item)
{
    return item > 1;
});

这只是一个示例,但您可以执行任何回调来过滤您喜欢的元素。

于 2012-05-03T18:45:06.060 回答
0

尝试这个:

var newList = $.filter(function () {
    return this.indexOf('venue') != 0;
});
于 2012-05-03T19:00:37.260 回答
0

对于就地改变数组的非 jQuery 解决方案:

for (var i=myArray.length;i--;){
  if (...) myArray.splice(i,1);
}

您想要的任何测试在哪里...,例如:

if (myRegeEx.test(myArray[i]))
于 2012-05-03T19:51:12.457 回答