Как проверить, содержит ли массив значение в JavaScript?

Лучшие проекты JavaScript для начинающих Программирование и разработка

В этой статье мы узнаем, как проверить, присутствует ли значение в массиве или нет. Для этого нам потребуется массив для поиска и целевой элемент, присутствие которого необходимо проверить.

Массивы JavaScript используются для хранения списка элементов, к которым можно получить доступ с помощью одной переменной.

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

1. Алгоритм линейного поиска (наивный подход)

В алгоритме линейного поиска мы сравниваем каждый элемент массива с целью. 8 является частью массива num ниже.

Javascript

var num = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
 
function check(element) {
 
    for (var i = 0; i < num.length; i++) {
        if (num[i] == element)
            return element + " is present in the array.";
 
    }
    return element + " is not present in the array.";
}
console.log(check(8));

Выход

8 is present in the array.

2. Использование функции indexOf()

Функция indexOf() возвращает индекс целевого элемента в массиве, если он присутствует, и −1, если его нет.

Например, 41 не является частью массива num в приведенном ниже коде.

Javascript

var num = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
var element = 41;
if (num.indexOf(element) > 0)
    console.log(element + " is present.");
else
    console.log(element + " is not present.");

Выход

41 is not present.

3. Бинарный поиск

Алгоритм бинарного поиска работает только с отсортированными массивами и продолжает делить массив на 2 равные половины и работает рекурсивно.

Javascript

function bsearch(arr, l, r, x) {
    if (r >= l) {
        let mid = l + Math.floor((r - l) / 2);
 
        if (arr[mid] == x)
            return mid;
 
        if (arr[mid] > x)
            return bsearch(arr, l, mid - 1, x);
 
        return bsearch(arr, mid + 1, r, x);
    }
 
    return -1;
 
}
 
var num = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
 
// To check if 85 is present or not
console.log("Is 85 present? "+(bsearch(num, 0, num.length, 85) != -1));
 
// To check if 1 is present or not
console.log("Is 1 present? "+(bsearch(num, 0, num.length, 1) != -1));

Выход

Is 85 present? false
Is 1 present? true

Читайте также:  Как искать в строке шаблон в JavaScript?
Оцените статью
bestprogrammer.ru
Добавить комментарий

Adblock
detector