使用带有通配符的jquery grep搜索对象数组

时间:2013-09-12 07:18:17

标签: jquery arrays search object grep

我正在使用jquery grep搜索一个对象数组,并希望在搜索中包含通配符。例如,我有一个如下数组:

courses = [
{code: 'ENCH3TH', otherFields: otherStuff},
{code: 'ENCH3THHS1', otherFields: otherStuff},
{code: 'ENCH3TH2', otherFields: otherStuff},
{code: 'ENCH4RT', otherFields: otherStuff},
{code: 'ENCH4MT', otherFields: otherStuff}]

我希望获得所有带ENCH3TH前缀的课程。我试过了

var resultSet = $.grep(courses, function(e){ return e.code == 'ENCH3TH/'; });

..无济于事(请注意在'ENCH3TH'之后使用'/'作为通配符)。

1 个答案:

答案 0 :(得分:4)

您可以在此使用String.indexOf()=无法使用野性字符

var resultSet = $.grep(courses, function (e) {
    return e.code.indexOf('ENCH3TH') == 0;
});

演示:Fiddle

或使用正则表达式

var regex = /^ENCH3TH/
var resultSet = $.grep(courses, function (e) {
    return regex.test(e.code);
});

演示:Fiddle