Код Senior Реализация с нуля обновлено
Уникальные без Set и Map
Условие
Убери дубликаты, сохранив порядок первого появления. Set и Map использовать нельзя.
Что проверяют тесты
убирает дубликаты
ключ constructor не ломает
нуль и строка ноль различаются
пустой массив
Как подойти
Запрет на Set превращает разминку в задачу с двумя ловушками. Первая: обычный объект как словарь наследует свойства прототипа, и seen['constructor'] истинно ещё до первого добавления. Вторая: ключи приводятся к строке, поэтому число 0 и строка '0' станут одним ключом. Обе лечатся - Object.create(null) и составной ключ с типом. Ровно поэтому в современном коде для таких словарей и берут Map.
Подсказки: 3
- Обычный объект наследует toString, constructor и другие ключи - они дадут ложное срабатывание.
- Object.create(null) создаёт словарь без прототипа.
- Ключи объекта - строки, поэтому 0 и '0' схлопнутся, если не добавить тип.
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.