AS
в любом случае самый оптимальный алгоритм можно будет построить только на циклах поддерживающих преждевременный выход (bailout)
для встроеннх в прототип массива это - some и every, классический for цикл c использованием break; (но в таком синтаксисе сейчас логику писать не желательно) ну и с активным использованием рекурсии, для сворачивания итогового результата инстанцировать обход можно сразу в reduce (если первый проход логически прогнозируется всегда по всем элементом, а уже от вложенности - опционально)
