> Как реализовать возврат true или false в полифилле some для прерывания перебора при первом true? (JavaScript)
Уровень: senior · Роль: frontend · Категория: Технические вопросы
Компании: Яндекс
Стек: JavaScript
> Пример ответа
В полифилле Array.prototype.some прерывание перебора при первом true реализуется с помощью возврата true из колбэка и немедленного выхода из цикла. Вот пример:
JAVASCRIPTif (!Array.prototype.some) {Array.prototype.some = function(callback, thisArg) {if (this == null) {throw new TypeError('Array.prototype.some called on null or undefined');}if (typeof callback !== 'function') {throw new TypeError(callback + ' is not a function');}const array = Object(this);const length = array.length >>> 0;for (let i = 0; i < length; i++) {if (i in array) {if (callback.call(thisArg, array[i], i, array)) {return true; // Прерывание цикла и возврат true}}}return false; // Если ни один элемент не прошел проверку};}
Ключевой момент: внутри цикла for при вызове callback проверяется его возвращаемое значение. Если оно приводится к true, функция немедленно возвращает true - это и есть прерывание. Если цикл завершился без такого случая, возвращается false.
> Похожие задачи по frontend
Как использовать несколько потоков в JavaScript
Как реализовать полифилл для Array.prototype.some с учетом callback и thisArg?
В каком порядке выполняются console.log в JavaScript с учетом синхронности и микротасков?
Как упростить реализацию функции pipe, комбинирующей несколько функций в JavaScript?
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью