Многоуровневый поиск атрибутов с использованием записи массива из объекта JSON

У меня здесь проблема с психическим утомлением, когда я получил объект JSON, извлеченный с использованием коллекции в Backbone. Вот как выглядит объект:

{
    "MatchID": "00000001",
    "Date": "1970-01-01T00:00:00.000Z",
    "OriginalID": "",
    "Stage": {
        "StageNumber": "0",
        "StageType": "Stage Type"
    },
    "Round": {
        "RoundNumber": "0",
        "Name": "Round Name"
    },
    "Leg": "1",
    "HomeTeam": {
        "TeamID": "0",
        "Name": "Home Team Name"
    },
    "AwayTeam": {
        "TeamID": "0",
        "Name": "Away Team Name"
    },
    "Venue": {
        "VenueID": "0",
        "Name": "Venu Name"
    },
    "Referee": null,
}

Что я хочу сделать с этими данными, это отфильтровать их на основе определенного атрибута, такого как атрибуты Venue.Name или Date (которые имеют разную глубину в объекте и могут быть глубже двух уровней для некоторых других данных). , Я получил следующий код внутри коллекции Backbone для фильтрации и возврата новой коллекции с соответствующим фильтрованием содержимого:

findWhere: function (Attribute, Value)
{
    return new Project.Collections.Fixtures(this.filter(function (fixture)
    {
        return eval('fixture.attributes.' + Attribute) == Value;
    }));
}

Это позволяет мне указать в атрибуте, по какому атрибуту я хочу фильтровать, и чему я хочу, чтобы он был равен для любой глубины объекта. Проблема в том, что я действительно не хочу использовать "eval" чтобы сделать это, но, очевидно, я не могу использовать «[Атрибут]» для чего-то вроде «AwayTeam.TeamID», поскольку это не сработает.

Кто-нибудь знает метод, который я могу использовать для достижения этой функциональности без использования eval?

Ответы на вопрос(4)

Ваш ответ на вопрос