Sobes.tech
Middle+

// A findUnique metódus alkalmazva van a tömbön, amely egy új tömböt ad vissza az egyedi elemekből, // vagyis azokból, amelyek csak egyszer fordulnak elő az eredeti tömbben, ugyanabban a sorrendben. // A findUnique metódust implementálni kell, hogy úgy működjön, mint egy normál tömbmetódus [10, 5, 10, 1, 6, 6, 7, 9, 9, 10].findUnique(); // [5, 1, 7]

sobes.tech MI

Válasz az MI-től

Az findUnique módszer hozzáadásához egy tömbhöz, amely egy új tömböt ad vissza azokkal az elemekkel, amelyek pontosan egyszer fordulnak elő az eredeti tömbben, a következőképpen bővítheti a tömb prototípusát:

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

// Használati példa:
const arr = [10, 5, 10, 1, 6, 6, 7, 9, 9, 10];
console.log(arr.findUnique()); // [5, 1, 7]

Magyarázat:

  • Először létrehozzuk a counts objektumot, ahol a kulcsok a tömb elemei, az értékek pedig azok előfordulásainak száma.
  • Ezután szűrjük az eredeti tömböt, csak azokat az elemeket hagyva meg, amelyek előfordulása 1.

Így a módszer úgy működik, mint egy normál tömbmetódus, és megőrzi az elemek sorrendjét.