Проблема с использованием indexOf для сложного массива [duplicate]

Возможный дубликат:
Метод indexOf в массиве объектов?

У меня есть массив JavaScript, который следует этому формату:

var arrayName = [
{id: "a", gender: "man",   item: "stuff"},
{id: "b", gender: "woman", item: "stuff"},
{id: "c", gender: "man",   item: "stuff"},
{id: "d", gender: "man",   item: "stuff"}
];

Есть ли способ, которым я могу использовать array.indexOf, чтобы найти индекс в массиве, когда, например, я знаю переменную "id".

Например я пытался;

var position = arrayName.indexOf("b");
arrayName[position].gender = "man"

На данный момент я использую;

for(var i=0; i<arrayName.length; i++) {
   if(arrayName[i].id == "b"){
       arrayName[i].gender = "man";
   }
}

Этот второй метод работает, но фактический массив, который я использую, имеет 150 записей и 10 элементов в каждой записи, поэтому циклическое прохождение всего этого кажется очень расточительным, когда я знаю «идентификатор» записи, которую я хочу редактировать. indexOf был бы намного более чистым подходом, если бы я мог заставить это работать.

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

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