js 怎样用includes判断数组是否包含某元素

对,就是这个问题。
includes()简单,直接用。

就是那几个字:要找啥,从哪开始。
比如,[1 ,2 ,3 ,'apple','banana'],找'apple',对,就是true。

别用indexOf(),它找索引,麻烦。
除非你老兄想找所有'orange',还得自己循环。

find()和findIndex()?那玩意儿灵活,但太绕了,除非你真复杂。

记得,includes()看类型,数字3 和'3 '不一样。
NaN它认,indexOf()不认。

稀疏数组?那空槽,它当undefined,也认。

老兄,兼容性是个问题,旧浏览器不支持,得转译。

总结一句:用includes()简单,兼容性差点儿,老浏览器用indexOf(),复杂条件用find系列。

js怎么判断数组中是否包含某个数字

哈,这个indexOf()方法啊,咱们得聊聊。
说实话,我刚入行那会儿,对这种JavaScript内置的方法还真是挺新鲜的。
那时候,我就在想,这玩意儿怎么就那么实用呢?
记得有一次,我帮一个朋友做前端开发,他需要判断一个数字是否在数组里。
我当时就用了indexOf(),结果那小子眼睛都亮了,说这方法太高效了。
当时也没想明白,就那么简单的一个方法,怎么就能让人这么惊喜呢?
咱们举个例子,假设有个数组var arr = [1 , 2 , 3 ];,你要找的数字是1 ,那么arr.indexOf(1 );就会返回0,因为1 在数组中的位置是第0个。
再比如,你要找的数字是5 ,那么arr.indexOf(5 );就返回-1 ,因为5 根本不在数组里。

有意思的是,这个方法不仅能告诉你数字是否存在,还能告诉你它在哪里。
比如说,数组[1 , 2 , 3 , 1 , 2 ],如果你用indexOf(1 );,它会返回0,因为1 在数组中最靠前的位置就是第0个。

这块儿我得承认,虽然我用了这么多年,但有时候还是会有点迷糊。
比如说,如果数组里面有多个相同的数字,indexOf()只会告诉你第一个数字的位置。
比如上面的例子,用indexOf(2 );会返回1 ,但如果你找的是数组中第二个2 的位置,那你就得自己数数了。

总的来说,indexOf()方法挺实用的,尤其在处理数组查找这类问题时。
不过,说到底,编程这东西,方法多了去了,关键还是要看怎么灵活运用。