JS判断数组含有某值,in、indexOf、includes、find、findIndex方案比照

作者 : 开心源码 本文共1011个字,预计阅读时间需要3分钟 发布时间: 2022-05-13 共281人阅读

本文测试数据:

let arr=["a","b","c"];                      //数组let arr2={"a":"aaa","b":"bbb","c":"ccc"};   //对象

1、in

in操作符针对的是key,而非value。而对于普通的一维数组来说,key是隐藏的。所以,对于判断某个数组中能否含有某个值来说,这个方案并不合适。

in方案测试代码如下:

console.log("a" in arr);console.log("aa" in arr);console.log(2 in arr);console.log(5 in arr);console.log("a" in arr2);console.log("aa" in arr2);

测试结果为:

1577957951350.png

2、indexOf

console.log(arr.indexOf("a"));    //存在则返回第一次出现的位置console.log(arr.indexOf("aa"));   //不存在则返回-1console.log(arr2.indexOf("b"));   //报错,对象没有indexOf方法console.log(arr2.indexOf("aaa")); //报错

测试结果为:

1577958207260.png

3、includes

indexOf一样,includes仅能用于数组操作。

console.log(arr.includes("a"));    //包含返回true,不包含返回falseconsole.log(arr.includes("aa"));console.log(arr2.includes("a"));   //报错,对象没有includes方法console.log(arr2.includes("aa"));  //报错

测试结果为:

1577958538019.png

4、find()

console.log(arr.find((n) => n === "a"));   //包含返回该值,不包含返回undefinedconsole.log(arr.find((n) => n === "aa"));console.log(arr2.find((n) => n === "a"));  //报错,对象没有find方法console.log(arr2.find((n) => n === "aa"));  //报错

测试结果:

1577959046765.png

5、findIndex()

find() 相似,但包含时返回该值的位置。

说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » JS判断数组含有某值,in、indexOf、includes、find、findIndex方案比照

发表回复