使用RegEx删除数组项?

时间:2012-05-03 18:36:48

标签: javascript jquery regex arrays

我有一堆用于过滤信息的链接,请参阅: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/并根据您点击的“全部”更改单词吗?

我知道我需要对$.inArrayindexOf()splice()进行组合,但我无法让它发挥作用。

3 个答案:

答案 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]))