Существуют различные методы поиска элементов или их позиций в массиве. Но мы всегда можем выбрать метод, который удовлетворяет нашим критериям поиска, то есть ищем ли мы элемент или его позицию в массиве.

Мы обсудим около 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