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ů.