如何检查 javascript 中的数组中是否存在某个值?

how to check whether a value exists in array in javascript?

我的 laravel blade 文件中有一个数组,我在 javascript:

中按以下方式访问它
var test = {!! json_encode($test) !!};

当我在控制台中打印测试变量时,它打印如下变量:

variable test console print

我有一个表单输入值访问如下:

$("#add-employeeId").val()

当我在控制台中打印这个值时,它会打印如下值:

form input

现在我需要检查测试变量中是否存在表单输入,如下所示:

function isInArray(array, search)
    {
        return array.indexOf(search) >= 0;
    }

//check
isInArray(test, $("#add-employeeId").val())

但这总是returns false,即使值存在。我需要知道我的支票出了什么问题以及遗漏了什么。谢谢。

它 returns 是因为 indexOf returns 找到的元素的索引,如果找不到则为 -1。您断言大于或等于 0,如果该值存在则为真。使用 array.includes(搜索) 作为您的用例 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/includes

indexOf() compares searchElement to elements of the Array using strict equality (the same method used by the === or triple-equals operator).

$("#add-employeeId").val() 正在返回 string 值,您正在将其与 int 值进行比较。

你的函数应该是:

function isInArray(array, search)
{
    return array.indexOf(parseInt(search)) >= 0;
}