Как проверить, существует ли пользовательский ввод в массиве?

#javascript #arrays

#javascript #массивы

Вопрос:

Есть ли способ проверить, существует ли пользовательский ввод из текстового поля (например) в массиве, который я создал и импортировал из других файлов JS?

И могу ли я связать весь этот код с HTML-кнопкой?

В Python для этого я использую «in».:

 if a in List: 
    print("That's In") 
 

PS: Я знаю, что список в Python немного отличается от массивов в JavaScript.

Комментарии:

1. посмотрите Array.contains или Array.indexOf

2. @Sysix Он не продвинется далеко, если посмотрит на Array.contains 😉 Array.includes существует, хотя

3. Array.includes — это тот, который обычно используется в наши дни

4. таким образом, для примера ur py эквивалент js будет if(list.includes(a)){console.log("That's in")}

Ответ №1:

Из документации JavaScript моей платформы:

 //Use:
if (in_array('a', ['a','b',4,'z'])) {console.log('item in array.');}

//Prerequisite functions:
function in_array(s,a)
{
 var r = false;

 if (is_array(a))
 {
  for (var i = 0; i<a.length; i  )
  {
   if (a[i]==s) {r = true;}
  }
 }
 else {console.log('Error: object to in_array (' a ') is not an array.');
}

 return r;
}

function is_array(a)
{
 return ((a.constructor.toString().indexOf('Array') > 0) ? true : false);
}
 

Комментарии:

1. Действительно? По сравнению с ['a','b',4,'z'].includes('a') ???

2. const list = ['a','b',4,'z']; if (Array.isArray(list) amp;amp; list.includes('a')) console.log('list is an array and included "a"'

3. @mplungjan Нет поддержки IE или другого старого браузера? Действительно? developer.mozilla.org/en-US/docs/Web/JavaScript/Reference /…

4. Да, действительно! isArray: IE9 — polyfill для includes по-прежнему короче вашего кода if(!Array.prototype.includes){ Array.prototype.includes = function(search){ return !!~this.indexOf(search); }}

Ответ №2:

Спасибо за все, я думаю, что я решил свою проблему с array.indexOf
Есть мое решение ниже, как я могу закрыть сообщение?

 <!DOCTYPE html>
<form id="form" onsubmit="return false;">
  <input style="position:absolute" type="text" id="userInput" /> <br>
  <input style="position:absolute;" type="submit" onclick="name();" /> <br>
  <script type="text/javascript">

function name() {
  var fruits = ["Apple", "Banana", "Mango", "Orange", "Papaya"];
  var input = document.getElementById("userInput").value;

 //Check if a value exists in the data1 array
 if(fruits.indexOf(input) !== -1){
   document.write(input, " Value exists!");
   document.write(" Press F5 to reload")
 } else{
   document.write(input, " Value does not exists!");
   document.write(" Press F5 to reload");
}
}
</script>
</form>
</html>