Как выполнить индексирование по нескольким элементам в массиве или объекте с помощью JavaScript / jQuery?

Фон

У меня есть массив данных в объекте результата, возвращенном вызовом Ajax. Данные выглядят так:

{ Name="User1 Name1", FirstName="User1", Id="005400000001234567", more...}
{ Name="User2 Name1", FirstName="User2", Id="005400000001234568", more...}

Где каждый элемент выглядит так:

{
    Id:"005400000001234567",
    Name:"User Name",
    FirstName:"User",
    LastName:"Name",
    Title:"Manager"
}

Вопрос

Я хочу иметь возможность получать данные либо по Id (возвращая одного пользователя), либо по Title (возвращая массив пользователей). Каким будет наилучший способ сделать это с помощью JavaScript или jQuery?

Пример

Вот что я пытался сделать до сих пор:

function GetAllUsers()
{
    AllUsersById = new Object();

    MyClass.MyAjaxMethod(function(result,event) {
        if(result) { 
            j$(result).each(function(index,item)
            {
                AllUsersById[item.Id] = item;
            });
        }
    });
}

Приведенный выше код отлично подходит для индексации по идентификатору, но я ' Я не знаю, что делать с заголовком.

Дополнительные сведения

Также, кстати, существует около 1000 записей , и мне нужно, чтобы это было достаточно эффективным . (Это одна из причин, по которой я получаю данные сразу же, когда документ готов. Однако я не эксперт в области JavaScript или эффективности jQuery. Дайте мне знать, если у вас есть способ получше.)

Есть идеи? Заранее спасибо!

7
задан Matt K 14 February 2012 в 20:30
поделиться