如何检查 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;
}
我的 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;
}