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

本文测试数据: 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")); //不存在则返回-1 console.log(arr2.indexOf("b")); //报错,对象没有indexOf方法 console.log(arr2.indexOf("aaa")); //报错 测试结果为: 1577958207260.png 3、includes 同indexOf一样,includes仅能用于数组操作。 console.log(arr.includes("a")); //包含返回true,不包含返回false console.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")); //包含返回该值,不包含返回undefined console.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() 类似,但包含时返回该值的位置。

本文章由javascript技术分享原创和收集

发表评论 (审核通过后显示评论):