Sobes.tech
Назад к вопросам
Middle+
1

// К массиву применяется метод findUnique, который возвращает новый массив из уникальных элементов, // то есть тех, которые в исходном массиве присутствуют всего один раз, расположенных в том же порядке. // Необходимо реализовать метод findUnique так, что бы он работал как обычный метод массива [10, 5, 10, 1, 6, 6, 7, 9, 9, 10].findUnique(); // [5, 1, 7]

Компании, где спрашивали
IT OneIT One

Ответ от нейросети

sobes.tech AI

Чтобы добавить метод 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.

Так метод работает как обычный метод массива и сохраняет порядок элементов.