Вы не можете разорвать от each
метод, он эмулирует поведение родного forEach
метода, а родной forEach
не предусматривает, чтобы избежать петли (кроме метания исключения).
Однако вся надежда не потеряна! Вы можете использовать метод Array.every
. :)
Из этой ссылке:
every
один раз выполняет предоставленный callback
функцию для каждого элемента, присутствующего в массиве, пока не найдет тот, где callback
возвращает ложное значение. Если такой элемент найден, метод every
немедленно возвращает значение false.
Другими словами, вы могли бы сделать что-то свернутый, как это (link to JSFiddle):
[1, 2, 3, 4].every(function(n) {
alert(n);
return n !== 3;
});
Это предупредит 1
через 3
, а затем "перерыв" из цикла.
Вы используете underscore.js, так что вы будете рады узнать, что он делает обеспечивают every
метод, который они называют его every
, но как ссылка упоминает, они также предоставляют псевдоним называется all
.
Я не думаю, что это возможно, потому что родной 'функция forEach' не поддерживает эту функцию, либо. –
Обычно, когда вы используете 'each' с закрытием (на большинстве языков), вы хотите сначала отфильтровать список. Таким образом, вам не нужно беспокоиться о том, чтобы сломать его. Вообще говоря, если вам нужно рано расколоться с итерации, возможно, вы по-другому можете это сделать. –
[Здесь] (http://stackoverflow.com/questions/1766941/groovy-how-to-exit-each-loop/1767046) [пара] (http://stackoverflow.com/questions/3049790/break -from-groovy-each-clos) связанные вопросы для Groovy, где поведение (невозможность удобно сломаться от закрытия каждого) похоже на JavaScript. –