Существуют различные методы поиска элементов или их позиций в массиве. Но мы всегда можем выбрать метод, который удовлетворяет нашим критериям поиска, то есть ищем ли мы элемент или его позицию в массиве.
Мы обсудим около 6 способов поиска в массиве. К различным методам относятся find
, findIndex
, includes
, indexOf
, lastIndexOf
и циклы (for
, filter
, map
). Давайте вкратце рассмотрим их.
Метод find ()
Метод Array find()
возвращает первый совпавший элемент в массиве, удовлетворяющий условию. Метод find()
принимает функцию в качестве аргумента, которая возвращает истину или ложь в зависимости от некоторого условия. Метод find()
выполняет эту функцию для каждого элемента массива. Если функция возвращает истину для любого элемента, то этот элемент будет возвращен методом find()
, и он прекратит дальнейшую проверку остальных элементов. Если ни один элемент не прошел условие, метод find()
вернет undefined
.
let score = [55, 73, 82, 66, 48]; let value = score.find(val => val > 60); // returns the first element that passed the condition console.log(value); // 73
Метод findIndex ()
Метод Array findIndex()
возвращает индекс первого совпавшего элемента в массиве, который удовлетворяет условию. Этот метод также принимает аргумент функции, который возвращает истину или ложь.
Метод findIndex()
работает так же, как метод find()
, за исключением того, что find()
возвращает первый согласованный элемент, а findIndex()
возвращает индекс первого согласованного элемента. Если совпадений в массиве не найдено, findIndex()
возвращает -1.
let score = [55, 73, 82, 66, 48]; let index = score.findIndex(val => val > 60); // returns the index of first element that passed the condition console.log(index); // 1
Метод includes ()
Этот метод проверяет, присутствует ли указанный элемент в массиве, и возвращает логическое значение. Если указанный элемент присутствует в массиве, он возвращает истину, иначе ложь. Этот метод чувствителен к регистру.
let teams = ['CSK', 'KKR', 'MI', 'RCB']; console.log(teams.includes('KKR')); // true console.log(teams.includes('rcb')); // false
Этот метод принимает необязательный параметр, который указывает позицию для начала поиска элемента. Если мы укажем позицию, то он начнет поиск элемента с этой позиции до конца массива. Значение по умолчанию - 0.
let teams = ['CSK', 'KKR', 'MI', 'RCB']; console.log(teams.includes('KKR', 2)); // false
Метод indexOf ()
Этот метод возвращает индекс первого вхождения совпадающего элемента в массив. Если ни один элемент не найден, возвращается -1. Этот метод чувствителен к регистру.
let shop = ['Amazon', 'Flipkart', 'Wallmart', 'Myntra', 'Flipkart']; console.log(shop.indexOf('Myntra')); // 3 console.log(shop.indexOf('Flipkart')); // 1 console.log(shop.indexOf('amazon')); // -1
Этот метод принимает необязательный параметр, который указывает позицию для начала поиска элемента. Если мы укажем позицию, то он начнет поиск элемента с этой позиции до конца массива. Значение по умолчанию - 0.
let shop = ['Amazon', 'Flipkart', 'Wallmart', 'Myntra']; console.log(shop.indexOf('Amazon', 1)); // -1
Если вы хотите проверить, присутствует ли какой-либо элемент в массиве, вы можете просто проверить индекс этого элемента в массиве. Итак, если
index >= 0
, то этот элемент существует, иначе, еслиindex = -1
, тогда элемент не существует в массиве.
Метод lastIndexOf
Этот метод возвращает индекс последнего вхождения совпадающего элемента в массив. Этот метод ищет элемент от конца до начала массива. Если ни один элемент не найден, возвращается -1. Этот метод чувствителен к регистру.
let items = ['car', 'phone', 'watch', 'car', 'bike']; console.log(items.lastIndexOf('car')); // 3 console.log(items.lastIndexOf('watch')); // 2 console.log(items.lastIndexOf('BIKE')); // -1
Этот метод принимает необязательный параметр, который указывает позицию для начала поиска элемента. Если мы укажем позицию, тогда он будет искать элемент с этой позиции до начала массива.
let items = ['car', 'phone', 'watch', 'car', 'bike']; //start searching from index 2 to 0 console.log(items.lastIndexOf('car', 2)); // 0
Перебираем элементы массива и находим
Мы можем перебрать каждый элемент массива и найти любые элементы или их позиции в зависимости от любого условия.
Использование цикла for
let arr = ['Gold', 'Silver', 'Platinum', 'Iron']; let isPresent = false; for(let item of arr) { if(item === 'Silver') isPresent = true; } if(isPresent) console.log('Silver Exists !'); else console.log('Silver Not found !');
Использование метода map ()
Давайте посмотрим на один пример, чтобы найти числа больше 30.
let marks = [53, 29, 65, 22, 71]; let pass = []; marks.map(val => { if(val >= 30) pass.push(val); }); console.log(pass); // [53, 65, 71]
Использование метода filter ()
Этот метод находит и отфильтровывает элементы, которые не соответствуют условию. Этот метод принимает функцию в качестве аргумента, которая возвращает истину или ложь. Эта функция выполняется для каждого элемента в массиве. Если функция возвращает истину для любого элемента, то в возвращаемый массив включается только этот элемент.
let marks = [53, 29, 65, 22, 71]; let pass = marks.filter(val => val >= 30); console.log(pass); // [53, 65, 71]
использованная литература
Спасибо за уделенное время ☺️
Для других блогов о веб-разработке посетите jscurious.com