Вам нужно взять значение фактическое из ввода в функции события, а также метод find
. В противном случае вы получите начальное значение из входных данных и результат поиска, который не соответствует более поздним входным данным.
Вы можете взять Array#some
вместо Array#find
потому что у вас есть только числа в массиве. Если у вас есть объект и вам нужен объект, find
будет работать лучше, потому что вы получите результат, отличный от простого числа.
Слово для Оператор равенства ==
. Этого оператора следует избегать, потому что он меняет тип fo по сравнению с другим значением. Вместо этого используйте Оператор идентификации / строгого равенства ===
, который проверяет тип и значение.
const array1 = [5, 12, 8, 98, 44];
number.addEventListener("input", function() {
var number = document.getElementById("number"),
found = array1.some(element => element == number.value);
if (found) {
document.getElementById("demo").innerHTML = 'found';
} else {
document.getElementById("demo").innerHTML = 'not found: ' + number.value;
}
});
<p id="demo"></p>
<input type="text" id="number">
Для более разумного подхода принимайте Array#includes
`в качестве проверки со значением в качестве числа в качестве параметра.
const array1 = [5, 12, 8, 98, 44];
number.addEventListener("input", function() {
var number = document.getElementById("number").value;
if (array1.includes(+number)) {
document.getElementById("demo").innerHTML = 'found';
} else {
document.getElementById("demo").innerHTML = 'not found: ' + number;
}
});
<p id="demo"></p>
<input type="text" id="number">