В этой статье мы узнаем, как проверить, присутствует ли значение в массиве или нет. Для этого нам потребуется массив для поиска и целевой элемент, присутствие которого необходимо проверить.
Массивы 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