美文网首页让前端飞
JS判断数组含有某值,in、indexOf、includes、f

JS判断数组含有某值,in、indexOf、includes、f

作者: 朴灿灿的dororo | 来源:发表于2020-01-03 09:13 被阅读0次

    本文测试数据:

    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() 类似,但包含时返回该值的位置。

    相关文章

      网友评论

        本文标题:JS判断数组含有某值,in、indexOf、includes、f

        本文链接:https://www.haomeiwen.com/subject/zaaaoctx.html