Sobes.tech
Middle+

// Metóda findUnique sa aplikuje na pole, ktoré vracia nové pole s unikátnymi prvkami, // teda tými, ktoré sa v pôvodnom poli vyskytujú iba raz, v rovnakom poradí. // Je potrebné implementovať metódu findUnique tak, aby fungovala ako bežná metóda poľa [10, 5, 10, 1, 6, 6, 7, 9, 9, 10].findUnique(); // [5, 1, 7]

sobes.tech AI

Odpoveď od AI

Za dodanie metódy findUnique do poľa, ktorá vracia nové pole s prvkami, ktoré sa v pôvodnom poli vyskytujú presne raz, môžete rozšíriť prototyp poľa nasledovne:

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

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

Vysvetlenie:

  • Najskôr vytvoríme objekt counts, kde kľúče sú prvky poľa a hodnoty sú počet ich výskytov.
  • Potom filtrujeme pôvodné pole, ponechávajúc len tie prvky, ktoré sa vyskytujú presne raz.

Týmto spôsobom funkcia funguje ako bežná metóda poľa a zachováva poradie prvkov.