js如何判断数组包含特定元素?(方法总结)

本篇文章给大家带来的内容是关于js如何判断数组包含特定元素?(方法总结),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

判断数组是否包含某一特定元素是很常见的需求,javascript中有很多实现方法,今天有空汇总了一下,按兼容性由强到弱排序,返回类型一律为boolean:

假设数组为arr,目标元素为target

循环遍历:

(arr, target) => {  for (var i = 0; i < arr.length; i++) {    if (arr[i] === target) {      return true;    }  }  return false;}

登录后复制

兼容性:es1

相等算法:===

indexOf:

(arr, target) => {  return arr.indexOf(target) >= 0;}

登录后复制

兼容性:es5

相等算法:===

filter:

(arr, target) => {  return arr.filter(el => el === target).length > 0;}

登录后复制

兼容性:es5

相等算法:===

some:

(arr, target) => {  return arr.some(el => el === target);}

登录后复制

兼容性:es5

相等算法:===

find:

(arr, target) => {  return arr.find(el => el === target) !== undefined;}

登录后复制

兼容性:es2015

相等算法:===

findIndex:

(arr, target) => {  return arr.findIndex(el => el === target) >= 0;}

登录后复制

兼容性:es2015

相等算法:===

includes:

(arr, target) => {  return arr.includes(target);}

登录后复制

兼容性:es2016

相等算法:SameValueZero

==Tips:==

=== 与 SameValueZero的区别在于
NaN === Nan => false 而 SameValueZero认为两个NaN之间是相等的。具体内容请参考 MDN。如果想把上面===的实现变成SameValueZero的实现可以写成:

el === target || (Object.is(el, NaN) && Object.is(target, NaN))

登录后复制

在如今es6、babel如此流行的情况下,大部分时候我们直接用includes就行啦。

以上就是js如何判断数组包含特定元素?(方法总结)的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2740312.html

(0)
上一篇 2025年3月8日 02:16:42
下一篇 2025年3月8日 02:16:48

AD推荐 黄金广告位招租... 更多推荐

相关推荐

发表回复

登录后才能评论