Sobes.tech
Middle+

// Metoda findUnique se primenjuje na niz, koji vraća novi niz sa jedinstvenim elementima, // odnosno onima koji se pojavljuju samo jednom u originalnom nizu, u istom redosledu. // Potrebno je implementirati metodu findUnique tako da radi kao obična metoda niza [10, 5, 10, 1, 6, 6, 7, 9, 9, 10].findUnique(); // [5, 1, 7]

sobes.tech АИ

Одговор од АИ

Da biste dodali metodu findUnique u niz, koja vraća novi niz sa elementima koji se pojavljuju tačno jednom u originalnom nizu, možete proširiti prototip niza na sledeći način:

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

// Primer upotrebe:
const arr = [10, 5, 10, 1, 6, 6, 7, 9, 9, 10];
console.log(arr.findUnique()); // [5, 1, 7]

Objašnjenje:

  • Prvo kreiramo objekat counts, gde su ključevi elementi niza, a vrednosti broj njihovih pojavljivanja.
  • Zatim filtriramo originalni niz, ostavljajući samo one elemente koji se pojavljuju tačno jednom.

Na ovaj način, metoda funkcioniše kao obična metoda niza i čuva redosled elemenata.