[ Leksykon ] [ JavaScript ] [ Tablice ] [ Metody ] [ Właściwości ] [ Array() ]
Array.prototype.find()
[_] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] [Z]
find(callbackFn)
find(callbackFn, thisArg)
Przykłady:
const tablica = [5, 10, 15, 20, 25];
const zadanie = tablica.find((element) => element > 12);
console.log(zadanie);
// 15
const obiekty = [
{ nazwa: "A", wartosc: 5 },
{ nazwa: "B", wartosc: 10 },
{ nazwa: "C", wartosc: 15 },
];
function zadanie(e) {
return e.nazwa === "B";
}
console.log(obiekty.find(zadanie));
// Object { nazwa: "B", wartosc: 10 }
const obiekty = [
{ nazwa: "A", wartosc: 5 },
{ nazwa: "B", wartosc: 10 },
{ nazwa: "C", wartosc: 15 },
];
const zadanie = obiekty.find(({ nazwa }) => nazwa === "B");
console.log(zadanie);
// Object { nazwa: "B", wartosc: 10 }
function zadanie(e) {
if (e % 2 === 0 || e < 2) {
return false;
}
for (let i = 2; i <= Math.sqrt(e); i += 2) {
if (e % i === 0) {
return false;
}
}
return true;
}
console.log([1, 2, 3, 4, 5].find(zadanie)); // 3
console.log([2, 4, 6, 8, 10].find(zadanie)); // undefined
console.log([1, 5, 9, 14, 15].find(zadanie)); // 5
const tablica = [0, 1, 3, , , 5, 6];
tablica.find((wartosc, index) => {
console.log(`index ${index} - wartość ${wartosc}`);
});
tablica.find((wartosc, index) => {
if (index === 5) {
console.log(`Usuwam tablica[5] wartość ${tablica[5]}`);
delete tablica[5];
}
console.log(`index ${index} - wartość ${wartosc}`);
});
// "index 0 - wartość 0"
// "index 1 - wartość 1"
// "index 2 - wartość 3"
// "index 3 - wartość undefined"
// "index 4 - wartość undefined"
// "index 5 - wartość 5"
// "index 6 - wartość 6"
// "index 0 - wartość 0"
// "index 1 - wartość 1"
// "index 2 - wartość 3"
// "index 3 - wartość undefined"
// "index 4 - wartość undefined"
// "Usuwam tablica[5] wartość 5"
// "index 5 - wartość 5"
// "index 6 - wartość 6"
const tablica = {
length: 5,
"-1": 6.1, // ignorowane
0: 5,
1: 4,
2: 1,
3: 7,
4: 3.2,
5: 5.1, // ignorowane
6: 1.1, // ignorowane
};
console.log(Array.prototype.find.call(tablica, (x) => !Number.isInteger(x)));
// 3.2
Opis:
Metoda Array.find() instancji Array zwraca pierwszy element w podanej tablicy, który spełnia podaną funkcję testującą. Jeśli żadna wartość nie spełnia funkcji testującej, undefined zwracana jest.
- Jeśli potrzebujesz indeksu znalezionego elementu w tablicy, użyj Array.findIndex().
- Jeśli chcesz znaleźć indeks wartości , użyj Array.indexOf(). Jest podobny do Array.findIndex(), ale zamiast używać funkcji testującej, sprawdza każdy element pod kątem równości z wartością.
- Jeśli chcesz sprawdzić, czy wartość istnieje w tablicy, użyj Array.includes(). Ponownie sprawdza każdy element pod kątem równości z wartością, zamiast używać funkcji testującej.
- Jeśli chcesz sprawdzić, czy jakikolwiek element spełnia podaną funkcję testującą, użyj Array.some().
Parametr pierwszy funkcja do wykonania dla każdego elementu tablicy. Powinien zwrócić wartość prawdziwą, wskazującą, że znaleziono pasujący element, lub wartość fałszywą w przeciwnym razie. Funkcja wywoływana jest z następującymi argumentami: Argument pierwszy bieżący element przetwarzany w tablicy. Argument drugi indeks bieżącego elementu przetwarzanego w tablicy. Argument trzeci tablica find() została wywołana. Parametr drugi opcjonalny wartość, która ma być używana this podczas wykonywania funkcji pierwszego parametru. Wartość zwracana pierwszy element tablicy, który spełnia podaną funkcję testującą. W przeciwnym razie undefined jest zwracany. Metoda find() jest metodą iteracyjną. Wywołuje podaną funkcję raz dla każdego elementu tablicy w kolejności rosnącej, dopóki funkcja nie zwróci wartości prawdziwej. find() następnie zwraca ten element i zatrzymuje iterację po tablicy. Jeśli funkcja nigdy nie zwraca prawdziwej wartości, find() zwraca undefined. funkcja jest wywoływana dla każdego indeksu tablicy, a nie tylko tych z przypisanymi wartościami. Puste miejsca w rzadkich tablicach zachowują się tak samo jak undefined. find() nie mutuje tablicy, na której jest wywoływany, ale podaną funkcję, jak callbackFn można. Należy jednak pamiętać, że długość tablicy jest zapisywana przed pierwszym wywołaniem callbackFn. Dlatego: callbackFn nie odwiedzi żadnych elementów dodanych poza początkową długość tablicy w momencie find() rozpoczęcia wywołania. Zmiany w już odwiedzonych indeksach nie powodują callbackFn ponownego wywołania ich. Jeśli istniejący, jeszcze nieodwiedzony element tablicy zostanie zmieniony przez callbackFn, jego wartość przekazana do callbackFn będzie wartością obowiązującą w momencie odwiedzenia tego elementu. Usunięte elementy są odwiedzane tak, jakby były undefined. Metoda find() jest ogólna. Oczekuje tylko, że this wartość będzie miała length właściwość i właściwości z kluczem całkowitym.
Linki: