Код Middle Реализация с нуля обновлено
filter своими руками
Условие
Реализуй filter(arr, fn) без использования встроенных методов массива. Колбэк получает (значение, индекс, массив), результат приводится к булеву.
Что проверяют тесты
фильтрует
результат приводится к булеву
индекс передаётся
дыры пропускаются
массив передаётся третьим аргументом
Как подойти
Запрет на методы заставляет вспомнить, что filter делает на самом деле: три аргумента колбэка, приведение результата к булеву, пропуск дыр разреженного массива. Последнее почти никто не помнит, а именно это отличает полифилл от наивной копии. Обрати внимание: −1 + 1 даёт 0, и такой элемент отсеивается - тест на приведение типов ловит это.
Подсказки: 3
- Три аргумента колбэка, а не один.
i in arrотличает дыру от значения undefined.- Присваивание по индексу вместо push - push тоже метод массива.
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.