Prohledávání polí JavaScript pomocí metody Array.find() [Příklady]

Tento tutoriál vám ukáže, jak vyhledávat pole v JavaScriptu pomocí Array.find() a ukázat některé příklady kódu.

Pole JavaScript

Pole je typ proměnné, která obsahuje uspořádaný seznam hodnot (nebo odkazy na jiné proměnné), nazývané prvky pole. Každý prvek má v poli pozici, která se nazývá index – a lze k němu přistupovat pomocí tohoto indexu.

Máme celou hromadu věcí, které můžete dělat s poli JavaScriptu.

Přístup k prvkům v poli podle jejich indexu je pohodlný, ale k ničemu, pokud neznáte index prvku nebo dokonce jaké hodnoty mohou být v poli.

Metody pole

Když je proměnná pole deklarována v JavaScriptu, je jí přidělen typ poletyp proměnné určuje, jakou hodnotu může mít a co s ní lze dělat.

Metody jsou funkce, které jsou dostupné pro daný typ pole, a když jsou volány, udělají něco s proměnnou, ze které byly volány, nebo s ní.

Prohledávání polí pomocí metody Array.find()

The Array.find() metoda prohledá pole, které ji volalo, a vrátí hodnoty, které odpovídají dané vyhledávací funkci spuštěním této funkce pro každý prvek v poli. Zde je syntaxe:

array.find(function(element, index, array){
    // Code to test each element in the array for a search match goes here
    // It should return TRUE for a match or FALSE otherwise
}, thisArg)

Všimněte si, že:

  • pole může být jakákoli proměnná pole obsahující libovolné hodnoty
  • funkce (prvek, index, pole){} je funkce, která musí vracet booleovskou hodnotu, která určuje, zda je prvek v poli považován za odpovídající pro vyhledávání
    • prvekindexpole jsou proměnné dostupné v rámci vyhledávací funkce, které odkazují na aktuální kontrolovaný prvek, index aktuálního prvku a samotné pole
  • tento argument určuje, na co tato proměnná ve vyhledávací funkci ukazuje
  • najít() vrátí první prvek, ke kterému má vyhledávací funkci vrátí hodnotu TRUE a zastaví se zde

Příklady

Můžete prohledávat pole obsahující jakýkoli typ hodnoty na základě jakýchkoli kritérií, která můžete vyjádřit jako funkce JavaScriptu, která vrací booleovskou hodnotu.

Vyhledávání pole řetězců

Níže uvedené příklady ukazují, jak se v poli řetězců hledá první prvek, který má první písmeno f :

var pets = ['cat', 'dog', 'fish', 'parrot', 'frog'];

var found = pets.find(function(element, index, array){
    if(element[0] == 'f') return true;
    else return false;
});

console.log(found);

Vzhledem k tomu, že je vrácena pouze první shoda, bude do konzole odesláno následující:

fish

Vyhledávání v poli čísel

Ne všechny parametry musí být dodány, pokud nejsou použity. Kromě toho lze ke zjednodušení kódu použít funkce šipek JavaScriptu:

var numbers = [1, 5, 7, 3, 19, 6];

var found = numbers.find(element => element > 15);

console.log(found);

Výše uvedená funkce šipky se používá k nalezení první hodnoty v poli s hodnotou větší než 15 .

Prohledávání pole objektů a použití více podmínek

Funkci vyhledávání lze deklarovat mimo volání funkce find() metodu, takže ji lze použít vícekrát při různých hledáních, aniž by se opakovala.

Lze také definovat více podmínek vyhledávání. Vaše vyhledávací funkce může být tak složitá, jak chcete, pokud vrací boolean hodnotu.

const cakes = [
    {name: 'black forest', quantity: 2},
    {name: 'chocolate', quantity: 0},
    {name: 'banana', quantity: 5},
    {name: 'baklava', quantity: 6},
    {name: 'vanilla', quantity: 1}
];

function searchCakes(cake) {
    return cake.name[0] == 'b' && cake.quantity > 3;
}

console.log(cakes.find(searchCakes));

Tím se vrátí první výsledek odpovídající dvěma podmínkám vyhledávání v searchCakes() funkce:

{ "name": "banana", "quantity": 5 }