Метод array find () возвращает значение первого элемента в массиве, который проходит заданный функциональный тест.
- Javascript array find
- Синтаксис
- Параметры
- Пример
- ES6 Array find ()
- Чистая функция
- Найдите элемент в массиве с помощью JS find ()
- Массив Javascript s пример поиска
- F ind элементом в массиве JavaScript.
- Найдите объект в массиве JavaScript.
- Найдите строку в массиве JavaScript.
- Найти простое число в массиве js.
- Использование стрелочной функции ES6 и деструктурирования
- Вывод
- Polyfill
- Поддержка браузера
- Тест должен быть предоставлен как функция. Метод find () выполняет функцию обратного вызова один раз для каждого элемента в массиве, пока не найдет значение, возвращающее истину. . Если ничего не проходит проверку, возвращается undefined. Плавник d () не мутирует и не изменяет исходный массив. Так что это чистая функция. Всякий раз, когда нам нужно получить значение первого элемента в массиве, который удовлетворяет предоставленной функции тестирования, мы используем метод Array.find () в JavaScript. Рекомендуемые сообщения Массив Javascript isArray () Массив Javascript toString () Массив JavaScript reverse () Значения массива Javascript () Массив Javascript включает ()
- Рекомендуемые сообщения
Javascript array find
Javascript Array find () — это встроенная функция, используемая для получения значения первого элемента в массиве, отвечающего указанному условию. Функция find () принимает в качестве аргументов function и thisValue . Функция принимает элемент , индекс и
Если вам нужен индекс найденного элемента в массиве, используйте findIndex ().
Если вам нужно найти индекс значения, используйте Array Array.prototype.indexOf (). Если вам нужно выяснить, существует ли значение в массиве, используйте Array.prototype.includes ().
Это проверяет все элементы массива, и в зависимости от того, какой элемент встречается первым, условие будет напечатано. Если условию соответствует более одного элемента, то возвращается первый элемент, удовлетворяющий требованию.
Предположим, вы хотите найти первое нечетное число в массиве. Функция аргумента проверяет, является ли переданный ей аргумент нечетным числом.
Javascript find () вызывает функцию аргумента для каждого элемента массива. Первое нечетное число, для которого функция аргумента возвращает истину, сообщается функцией find () как ответ.
Синтаксис
Синтаксис метода array find () следующий.
array.find (function (element, index, array), thisValue)
Параметры
Функция принимает следующие три аргумента:
element:
Это текущий элемент, обрабатываемый функцией.
index
Это индекс текущего элемента, обрабатываемого функцией.
массив:
Это массив, для которого была вызвана функция Array . filter ().
Другой аргумент — thisValue. Он используется для указания функции использовать значение массива при выполнении функции аргумента.
Пример
Мы будет использовать Node.js в этом примере для запуска кода javascript.
Итак, давайте создадим файл с именем app.js и добавьте следующий код.
//app.jsvar data = [20, 18, 15, 10, 9]; var found = data.find (function (element) {return elementИтак, мы написали одно условие, и если какой-либо элемент массива удовлетворяет этому условию, он вернет значение этого элемента, а дальнейшая проверка элементов внутри массива будет остановлена.
Здесь оба значения 10 и 9 меньше 12, но все же мы получили 10 , потому что значение 10 элемента находится первым внутри массива.
Таким образом, будет возвращено только 10, а не 9. Если удовлетворяющий элемент условия найден внутри массива, он немедленно вернется, и дальнейшая проверка не требуется.
➜ es git: (master) ✗ node app10➜ es git: (master) ✗ES6 Array find ()
Мы можем написать указанную выше функцию в стандарте ES6, как показано ниже.
//app.jsconst data = [20, 18, 15, 10, 9]; let found = data.find (element => elementОтвет будет таким же, как и предыдущий, но с гораздо более легким синтаксисом.
Теперь давайте рассмотрим сценарий, в котором найдено undefined .
//app.jsconst data = [20, 18, 15, 10, 9]; let found = data.find (element => elementВ приведенном выше примере все элементы больше 9; вот почему результат будет
Чистая функция
Поиск массива Javascript Метод является чистой функцией, потому что он не изменяет массив, для которого он вызывается. Вместо этого он вернет значение, удовлетворяющее его условию.
Найдите элемент в массиве с помощью JS find ()
Теперь напишите следующий код.
//app.jsconst fruit = [{name: 'яблоки', количество: 2}, {name: 'bananas', количество: 0}, {name : 'вишня', количество: 5}]; const getFruit = fruit.find (fruit => fruit.name === 'apples'); console.log (getFruit);Здесь, только один объект будет возвращен, если условие выполнено успешно.
es git: (master) ✗ node app {name: 'apples', количество: 2} ➜ es git: (master) ✗Итак, всякий раз, когда у нас есть сценарий, в котором нам нужно получить значение первого элемента в массиве, которое удовлетворяет предоставленной функции тестирования, мы можем использовать метод Array.find () в JavaScript.
Массив Javascript s пример поиска
Javascript find () также помогает нам искать элемент в массиве. Давайте рассмотрим, взрослый человек или нет. Если мы найдем первое значение из массива, которое удовлетворяет критериям, оно вернет это значение.
Видите, мы ищем элемент в массиве, используя функцию javascript find ().
//app.jslet age = [6, 18, 19, 21]; let checkAdult = age => {return age> = 18;} console.log (age.find (checkAdult)) ;В приведенном выше коде, если первый элемент массива окажется больше или равен 18, он вернется в вывод. Теперь посмотрите на результат.
➜ es git: (master) ✗ node app18➜ es git: (master) ✗F ind элементом в массиве JavaScript.
Начиная с ECMAScript 2018, мы можем использовать функцию Javascript includes (). Метод Javascript Array includes () определяет, содержит ли массив указанный элемент.. Он возвращает true , если он состоит из элемента, в противном случае - false, как не включающий элемент в массив.
Если если вы хотите поддерживать IE или другие старые браузеры, попробуйте следующий код.
//app.js function include (arr, obj) {return (arr.indexOf (obj)! = -1 );}В приведенном выше коде мы использовали метод indexOf Javascript. Итак, вот как искать значение в массиве в javascript.
Найдите объект в массиве JavaScript.
Давайте скажем, у меня есть массив неопознанных объектов, которые содержат массив именованных объектов, и нам нужно получить объект, где «имя» - это «некоторая строка». См. Следующий пример программирования.
//app.js search = (key, inputArray) => {for (let i = 0; iИтак, в приведенном выше коде, во-первых, у нас есть определяемая пользователем функция, называемая функцией поиска, которая принимает два аргументы. Один - это ключ входного объекта, а другой - входной массив.
Он выполняет итерацию inputArray и сравнивает ключ со свойством name массива. Если он совпадает, он возвращает весь объект. См. Вывод ниже.
![]()
Мы также можем использовать поиск (), чтобы получить то же значение. См. Следующий код.
//app.js let arr = [{name: "Krunal", value: "Engineer", other: "Author"}, {name: "Ankit", значение: "MCA", другое: "Автор"}]; let obj = arr.find (data => data.name === 'Krunal'); console.log (obj);Это даст нам тот же результат, но в функции стрелки в стиле ES6.
Найдите строку в массиве JavaScript.
Метод Javascript search () выполняет поиск указанного значения в строке и возвращает позицию совпадения. Значение search может быть строкой или регулярным выражением. Этот метод возвращает -1, если совпадений не найдено.
Найти простое число в массиве js.
В следующем примере выполняется поиск элемент в массиве, который является простым числом (или возвращает undefined , если простого числа нет):
//app.jsconst isPrime = (element, index , array) => {let start = 2; while (start 1;} console.log ([4, 6, 8, 11] .find (isPrime)); console.log ([9, 1, 21, 13] .find (isPrime));См. вывод.
➜ es git: (master) ✗ node app1113➜ es git: (master) ✗Использование стрелочной функции ES6 и деструктурирования
Мы можем использовать стрелочную функцию ES6 и деструктуризацию объекта в Javascript с помощью функции javascript find (). Таким образом, код выглядит более ясным, менее ошибочным и легким для понимания. См. Следующий код.
//app.jsconst fav = [{актриса: 'Милли Бобби Браун', возраст: 16}, {актриса: 'Кирнан Шипка', возраст: 19}, { актриса: 'Эмма Уотсон', возраст: 29}]; const result = fav.find (({снимок актрисы}) => актриса === 'Милли Бобби Браун'); console.log (результат)Вывод
node app {актриса: 'Милли Бобби Браун', возраст: 16}Если актриса Милли Бобби Браун в приведенном выше коде даст нам этот объект с двумя свойствами; в противном случае он предоставит нам undefined.
Polyfill
Метод find () массива JS был добавлен в ECMAScript 2015 и может быть недоступен во всех реализациях JavaScript. Однако вы можете использовать polyfill Array .prototype.find следующий фрагмент.
if (! Array.prototype.find) {Object.defineProperty (Array.prototype, 'find', {value: function (предикат) {//1. Пусть O будет? ToObject (это значение). if (this == null) {throw TypeError ('"this" имеет значение null или не определено');} var o = Object (this); //2. Пусть len будет? ToLength (? Get (O, "length")). Var len = o.length >>> 0;//3. Если IsCallable (предикат) имеет значение false, выбросить исключение TypeError. If (typeof predicate! == 'function') {throw TypeError ('предикат должен быть функцией');}//4. Если thisArg был предоставлен, пусть T будет thisArg; иначе пусть T будет неопределенным. var thisArg = arguments [1 ];//5. Пусть k равно 0. var k = 0;//6. Повторить, пока kЕсли вы хотите поддерживать устаревшие движки JavaScript, которые не поддерживают Object.defineProperty, лучше не заполнять Array.prototype полифилом в все, так как вы не можете сделать его не перечислимым.
Поддержка браузера
ФУНКЦИЯ | ОСНОВНАЯ ПОДДЕРЖКА |
---|---|
Chrome | 45 |
Edge | Да |
Firefox | 25 |
Internet Explorer | Нет |
Opera | 32 |
Safari | 8 |
Android WebView | Да |
Chrome для Android | Да |
Edge для мобильных устройств | Да |
Firefox для Android | 4 |
Opera Android | Да |
iOS Safari | 8 |
- Тест должен быть предоставлен как функция.
- Метод find () выполняет функцию обратного вызова один раз для каждого элемента в массиве, пока не найдет значение, возвращающее истину. .
- Если ничего не проходит проверку, возвращается undefined.
- Плавник d () не мутирует и не изменяет исходный массив. Так что это чистая функция.
- Всякий раз, когда нам нужно получить значение первого элемента в массиве, который удовлетворяет предоставленной функции тестирования, мы используем метод Array.find () в JavaScript.
Рекомендуемые сообщения
Массив Javascript isArray ()
Массив Javascript toString ()
Массив JavaScript reverse ()
Значения массива Javascript ()
Массив Javascript включает ()