Рассмотрим следующий код:
var sentences = [
'Lorem ipsum dolor sit amet, consectetur adipiscing elit.',
'Vivamus aliquet nisl quis velit ornare tempor.',
'Cras sit amet neque ante, eu ultrices est.',
'Integer id lectus id nunc venenatis gravida nec eget dolor.',
'Suspendisse imperdiet turpis ut justo ultricies a aliquet tortor ultrices.'
];
var words = ['ipsum', 'amet', 'elit'];
$(sentences).each(function() {
var s = this;
alert(s);
$(words).each(function(i) {
if (s.indexOf(this) > -1)
{
alert('found ' + this);
return false;
}
});
});
Интересной частью являются вложенные петли jQuery.each(). В соответствии с документацией, возвращающее ложь выйдет из цикла (прекращение выполнения цикла - похоже на обычный оператор разрыва JavaScript) и возвращение non-false остановит текущую итерацию и продолжит следующую итерацию (похожую на обычный оператор JavaScript continue).
Я могу разбить или продолжить jQuery.each() самостоятельно, но с вложенным jQuery.each мне было трудно вырваться из родительского цикла из дочернего цикла. Я мог бы использовать логическое значение и обновлять его на каждой дочерней итерации, но мне было интересно, был ли более простой способ.
Я установил пример в jsFiddle, если вы хотите пообщаться с ним. Просто нажмите кнопку "Тест", чтобы запустить пример, показанный выше.
TL;DR: Есть ли что-нибудь похожее на помеченное продолжение или разрыв в контексте jQuery?