0

我有一个数组,我正在尝试使用 inArray() 检查一个项目是否不在数组中

var popUpArray = ['join','reset_password','photos','session_expired'];


if($.inArray(urlType, popUpArray) != 0) {
  process code...
}

基本上,如果 urlType 变量与数组中的值之一不匹配,我想在 if 语句中处理代码。

它适用于第一个值“加入”,但不适用于其他值。我理解这是因为一旦它在一个项目上不匹配它就会进行。

我想知道如何重新编写它,以便只有在 var urlType 与数组中的任何项目都不匹配时才会进入 IF 语句。

谢谢

4

1 回答 1

2

它适用于连接,因为它是零索引。试试这个:

if($.inArray(urlType, popUpArray) == -1) {

}

根据文档:

$.inArray() 方法类似于 JavaScript 的原生 .indexOf() 方法,因为它在找不到匹配项时返回 -1。如果数组中的第一个元素与值匹配,则 $.inArray() 返回 0。

因为 JavaScript 将 0 视为松散地等于 false(即 0 == false,但 0 !== false),如果我们要检查数组中是否存在值,我们需要检查它是否不等于(或大于) -1。

http://api.jquery.com/jQuery.inArray/

于 2012-10-23T06:43:01.533 回答