JavaScript无法识别数组声明

JavaScript无法识别数组声明,javascript,jquery,arrays,Javascript,Jquery,Arrays,我试图对照预定义的值数组检查用户输入,以确保用户输入的是有效的输入 为此,我使用jQuery的$.inArray()函数。它有两个参数:要检查的值和要使用的数组。如果找到数组中的值,则返回该值的索引;如果未找到,则返回-1 但是,当我使用$.inArray()函数时,它似乎无法识别genrearay数组(请参见下面的代码)。虽然这里没有显示,genrearay变量在函数调用中没有正确的语法突出显示。此外,似乎执行了if检查,因为控制台上没有显示任何内容(甚至没有错误) if语句语法工作正常-我用

我试图对照预定义的值数组检查用户输入,以确保用户输入的是有效的输入

为此,我使用jQuery的
$.inArray()
函数。它有两个参数:要检查的值和要使用的数组。如果找到数组中的值,则返回该值的索引;如果未找到,则返回-1

但是,当我使用
$.inArray()
函数时,它似乎无法识别
genrearay
数组(请参见下面的代码)。虽然这里没有显示,
genrearay
变量在函数调用中没有正确的语法突出显示。此外,似乎执行了
if
检查,因为控制台上没有显示任何内容(甚至没有错误)

if
语句语法工作正常-我用
if(1==1)
替换代码,代码执行正常

此外,变量声明的位置似乎也无关紧要。我把它放在代码中每个重要点的前面/后面,结果没有差别

我还排除了
类型
变量的任何问题

非常感谢你的帮助



你有没有检查过你作为类型传递的值?您正在对一个空字段进行拆分,并将字段与“+”连接在一起,您将得到一个与“+”连接的字符串。$。inArray()需要单个值,而不是串联值。请将实际值放入类型数组和#genreName.$的html代码中。inArray需要一个值,为什么要发送包含“+”的文本,或者为什么要尝试使用.split(“”).join(“+”)?在条件中,逻辑似乎向后。。。更好地解释匹配案例(用文字)您是如何排除
类型
变量的问题的?我猜你的
genreArray
看起来像
['genre1','genre2','genre3']
-如果你在
#genreName
中输入文本
'genre1 genre3'
,你的
类型
变量将是
'genre1+genre3'
。即使
true==($.inArray($.genre1',['genre1','genre2','genre3'])!=-1)
true==($.inArray($.genre3',['genre1','genre2','genre3'])!=-1)
false==($.inArray($.inArray('genre1+genre3',['genre1','genre2','genre3'])!=-1)
$(document).ready(function() {
  var genreArray = [...];

  $('.menu').click(function() {
    var genre = $('#genreName').val().split(' ').join('+');
    $('#error').text('');
    if ($.inArray(genre, genreArray) != -1) {
      $('#error').text('Sorry, this is not a valid genre.');
    }
  })
})