「简单数组元素」判断数组中是否包含某个元素的正确搞法

点击右上方红色按钮关注“小郑搞码事”,每天都能学到知识,搞懂一个问题!

JavaScript是一种非常灵活的语言,本身也存在一些设计的相当糟糕的地方,新的标准方法也在不断更新和填补老标准的坑。

今天来讲一个很常见的问题:"判断数组中是否包含某个元素",只相对于简单数组的情况,而对于复杂的数组(比如,数组元素是一个JSON格式,判断是否存在)下一篇来搞,这个问题恐怕是我们日常工作代码中经常要考虑的。

一、需要索引值

然而,我们的通常解决办法是使用Array.indexOf。如下

const names = [
'小',
'小郑',
'小郑搞',
'小郑搞码',
'小郑搞码事'
]
console.log(names.indexOf('小郑')) // 1

看着并没有什么问题,通过索引来判断是否存在,返回的是索引值。存在的时候索引值最小为0。如果代码中我们又刚刚需要知道这个元素存在的索引值,那么这对于简单数组无疑是好的方法。

二、不需要索引值

但是,大部分情况下,我们只想知道数组是否包含某个值。这一个看就是一个是与否的问题,返回布尔值似乎是最好的选择。所以,我们可以使用Array.includes。如下

console.log(names.includes('小郑')) // true

最后总结:

还有一种复杂数组的情况,就是当数据元素是一个JSON格式:{id:2,name:'xx'}。该如何正确判断了。下一篇来讲一下。


分享到:


相關文章: