在前端开发中,经常需要处理数组相关的操作。其中一个常见的需求是判断数组是否包含某个元素。虽然 JavaScript 原生提供了 Array.prototype.includes
方法来完成该功能,但在一些旧版本浏览器中可能不支持。此时我们可以使用 jQuery 提供的方法来实现:$.inArray()
。
$.inArray()
方法简介
$.inArray()
是 jQuery 提供的一个用于判断元素是否在数组中的方法。它的语法如下:
$.inArray(value, array [, fromIndex])
参数说明:
value
:要查找的值。array
:要在其中查找的数组。fromIndex
(可选):开始查找的位置,默认为 0。
如果查找成功,则返回被查找元素在数组中的索引(从 0 开始)。否则,返回 -1。
$.inArray()
与 Array.prototype.indexOf()
的区别
$.inArray()
方法与 JavaScript 原生提供的 Array.prototype.indexOf()
方法相似,但有以下两点区别:
- 参数顺序不同。
$.inArray()
方法中先传入要查找的值,后传入要查找的数组;而Array.prototype.indexOf()
方法中先传入要查找的数组,后传入要查找的值。 - 返回值不同。
$.inArray()
方法查找成功时返回被查找元素在数组中的索引,失败时返回 -1;Array.prototype.indexOf()
方法查找成功时返回被查找元素在数组中的索引,失败时返回 -1。
使用示例
下面是一个使用 $.inArray()
方法判断元素是否在数组中的示例代码:
var arr = [1, 2, 3, 4, 5]; var value = 3; if ($.inArray(value, arr) !== -1) { console.log(value + ' is in the array.'); } else { console.log(value + ' is not in the array.'); }
运行结果为:"3 is in the array."。
延伸思考
在实际开发中,有时需要判断数组中是否有重复元素。此时我们可以使用 new Set()
对象去掉数组中的重复元素,然后再通过 $.inArray()
判断元素是否在数组中。下面是一个示例代码:
-- -------------------- ---- ------- --- --- - --- -- -- -- -- --- --- --------- - ------- ---------- --- ----- - -- -- ----------------- ---------- --- --- - ----------------- - - -- -- --- --------- - ---- - ----------------- - - -- --- -- --- --------- -
运行结果同样为:"3 is in the array."。
总结
本文介绍了 jQuery 版本的 array.contains()
方法,即 $.inArray()
方法。与 JavaScript 原生提供的 Array.prototype.indexOf()
方法相比,$.inArray()
有一些区别,但功能类似。在实际开发中,可以根据需要选择使用哪种方法。同时,我们也了解到了如何通过 new Set()
对象去掉数组中的重复元素,从而判断数组中是否有重复元素。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/13916