3

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」の後に「/」を使用していることに注意してください)。

4

1 に答える 1

4

ここでString.indexOf()を使用できますが=、ワイルド文字では機能しません

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

デモ:フィドル

または正規表現を使用します

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

デモ:フィドル

于 2013-09-12T07:21:37.983 に答える