Přejít na hlavní obsah

Jak odvodit pole jedinečných hodnot z duplicitního pole čísel: 10 způsobů

Pole čísel jsou jednou z hlavních datových struktur v programování. Umožňují ukládat a zpracovávat velké množství informací. Často je však potřeba pracovat pouze s jedinečnými hodnotami z pole a právě pro tento úkol je zkoumáme. V tomto článku se podíváme na 10 různých způsobů, jak odvodit pole jedinečných hodnot z opakujícího se pole čísel.

Prvním způsobem je použití smyčky for k přerušení všech prvků pole. U každého prvku je třeba zkontrolovat, zda se již nachází v novém poli jedinečných hodnot. Pokud prvek není v novém poli, přidáme ho tam. Tento způsob je jednoduchý a přímočarý, ale může trvat dlouho, než se provede, zejména pro velká pole.

Druhým způsobem je použití metody filter(). Metoda filter() umožňuje filtrovat pole na základě dané podmínky. V tomto případě podmínka zkontroluje, zda se prvek již nachází v novém poli jedinečných hodnot. Pokud prvek není v novém poli, bude přidán do výsledného pole jedinečných hodnot. Tato metoda je kompaktnější a rychlejší než předchozí.

Třetím způsobem je použití metody reduce (). Metoda reduce () umožňuje použít funkci obslužné rutiny pro každý prvek pole a shromažďovat mezilehlý výsledek. V tomto případě funkce obslužného programu zkontroluje, zda se prvek již nachází v novém poli jedinečných hodnot. Pokud prvek není v novém poli, bude přidán do průběžného výsledku. Tato metoda je flexibilnější a výkonnější, protože umožňuje použití různých obslužných funkcí v závislosti na úkolu.

Následující způsoby budou zvažovány v následujících odstavcích. Podíváme se na metody, jako je použití Set, použití objektu a další. Tyto způsoby také umožní získat pole jedinečných hodnot z opakujícího se pole čísel, ale pomocí jiných přístupů a metod. Každý způsob má své výhody a nevýhody a výběr způsobu závisí na konkrétní situaci a požadavcích na výkon.

Použití cyklu for

Pomocí cyklu for můžeme procházet každý prvek pole a zkontrolovat, zda v novém poli existuje takový prvek, který bude obsahovat pouze jedinečné hodnoty.

Zde je příklad řešení tohoto problému pomocí cyklu for:

Číslo krokuPrvek poleNové pole
11[1]
23[1, 3]
32[1, 3, 2]
43[1, 3, 2]
51[1, 3, 2]

Tímto způsobem získáme jedinečné pole [1, 3, 2].

Použití cyklu while

Nejprve vytvoříme nové pole, do kterého přidáme pouze jedinečné hodnoty. Pak vytvoříme proměnnou-počítadlo, které budeme zvyšovat v každé iteraci cyklu. Cyklus bude probíhat, dokud měřič nedosáhne délky původního pole.

Uvnitř cyklu zkontrolujeme, zda je v novém poli aktuální prvek původního pole. Pokud je hodnota již přítomna, přeskočíme ji a přejdeme k další iteraci. V opačném případě jej přidáváme do nového pole.

let uniqueArray = [];let i = 0;while (i < array.length) i++;>

Po dokončení cyklu budou v novém poli uniqueArray pouze jedinečné hodnoty z původního pole.

Použití metody filter()

const array = [1, 2, 3, 4, 4, 5, 6, 6];
const uniqueArray = array.filter((value, index, self) => return self.indexOf(value) === index;
>);
console.log(uniqueArray); // [1, 2, 3, 4, 5, 6]

V tomto příkladu vytváříme nové pole uniqueArray pomocí metody filter (). Callback-funkce uvnitř filter () kontroluje index každé hodnoty a porovnává jej s hodnotou vrácenou metodou indexOf (). Pokud se index shoduje s hodnotou, hodnota zůstává v novém poli, jinak nesplňuje podmínku a bude filtrována. Výsledkem je pole obsahující pouze jedinečné hodnoty.

Metoda filter () je pohodlný způsob, jak získat pole jedinečných hodnot z opakujícího se pole čísel a může být užitečná v mnoha programovacích situacích.