Sobes.tech
Middle+

// Metoda findUnique je aplikována na pole, které vrací nové pole s unikátními prvky, // tj. těmi, které se v původním poli vyskytují pouze jednou, ve stejném pořadí. // Je nutné implementovat metodu findUnique tak, aby fungovala jako běžná metoda pole [10, 5, 10, 1, 6, 6, 7, 9, 9, 10].findUnique(); // [5, 1, 7]

sobes.tech AI

Odpověď od AI

Pro přidání metody findUnique do pole, která vrací nové pole s prvky, které se v původním poli vyskytují přesně jednou, můžete rozšířit prototyp pole následujícím způsobem:

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);
};

// Příklad použití:
const arr = [10, 5, 10, 1, 6, 6, 7, 9, 9, 10];
console.log(arr.findUnique()); // [5, 1, 7]

Vysvětlení:

  • Nejprve vytvoříme objekt counts, kde klíče jsou prvky pole a hodnoty jsou počet jejich výskytů.
  • Poté filtrujeme původní pole, ponechávajíc pouze prvky, jejichž výskyt je roven 1.

Tímto způsobem metoda funguje jako běžná metoda pole a zachovává pořadí prvků.