Чтобы добавить метод findUnique к массиву, который возвращает новый массив из элементов, встречающихся ровно один раз в исходном массиве, можно расширить прототип массива следующим образом:
Напишите функцию, которая возвращает элементы массива, встречающиеся ровно один раз, сохраняя исходный порядок элементов.
Чтобы добавить метод findUnique к массиву, который возвращает новый массив из элементов, встречающихся ровно один раз в исходном массиве, можно расширить прототип массива следующим образом:
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Чтобы добавить метод findUnique к массиву, который возвращает новый массив из элементов, встречающихся ровно один раз в исходном массиве, можно расширить прототип массива следующим образом:
Array.prototype.findUnique = function() {
const counts = this.reduce((acc, val) => {
acc[val] = (acc[val] || 0) + 1;
return acc;
}, {});
return this.filter(item => counts[item] === 1);
};
// Пример использования:
const arr = [10, 5, 10, 1, 6, 6, 7, 9, 9, 10];
console.log(arr.findUnique()); // [5, 1, 7]
Объяснение:
- Сначала создаём объект
counts, где ключи — элементы массива, а значения — количество их появлений. - Затем фильтруем исходный массив, оставляя только те элементы, у которых количество появлений равно 1.
Так метод работает как обычный метод массива и сохраняет порядок элементов.