我有一堆用于过滤信息的链接,请参阅: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/
并根据您点击的“全部”更改单词吗?
我知道我需要对$.inArray
或indexOf()
和splice()
进行组合,但我无法让它发挥作用。
答案 0 :(得分:1)
您只需使用$.grep
实用程序
var someArray = [1, 2, 3];
var numbersGreaterThanOne = $.grep(someArray, function(item)
{
return item > 1;
});
这只是一个示例,但您可以执行任何回调来过滤您喜欢的元素。
答案 1 :(得分:0)
试试这个:
var newList = $.filter(function () {
return this.indexOf('venue') != 0;
});
答案 2 :(得分:0)
对于一个非jQuery解决方案,可以就地修改数组:
for (var i=myArray.length;i--;){
if (...) myArray.splice(i,1);
}
...
是您想要的任何测试,例如:
if (myRegeEx.test(myArray[i]))