Как выйти из функции $.each при выполнении условия

Как я могу выйти из цикла $.each при выполнении условия? Я не хочу повторять итерацию коллекции.

$(vehicles).each(function() {
    if (this["@id"] === vehicleId[0]) {
      vehicle = this;
    }
});

Я попытался с помощью оператора break; и return;, но он выглядит, что выполнение не останавливается в этой точке. Любая идея была бы с благодарностью.

Ответы

Ответ 1

Возвращение false является эквивалентом разрыва цикла $.each. Итак, в вашем примере:

   if (this["@id"] === vehicleId[0]) { vehicle = this; return false; }

Ответ 3

Так как .each() выполняет итерацию по завернутому набору и выполняет заданную функцию для каждого элемента, break не влияет на фактическую итерацию. Тем не менее, вы можете добиться того, что вам нужно без итерации, просто позвонив

vehicle = $('#' + vehicleId[0], $(vehicles));

или (как было предложено Kobi в комментарии)

vehicle = $(vehicle).filter('#' + vehicleId[0]);