美文网首页
es6数组方法find()、findIndex()与filter

es6数组方法find()、findIndex()与filter

作者: 依然_8deb | 来源:发表于2021-05-08 17:09 被阅读0次

    1、find(value, index, arr)
    该方法主要应用于查找第一个符合条件的数组元素。当条件成立为true时,返回该元素。如果没有符合条件的元素,返回值为undefined。

    const myArr=[1,2,3,4,5,6];
    var v=myArr.find(value=>value>4);
    console.log(v);// 5
    
    const myArr=[1,2,3,4,5,6];
    var v=myArr.find((value,index,arr)=>{
        return index==4
    });
    console.log(v);// 5
    

    2、findIndex()
    与find()的使用方法相同,不同的是该方法返回符合条件的元素索引值,没有则返回-1

    const bookArr=[
        { id:1, bookName:"三国演义"},
        { id:2, bookName:"水浒传"},
        { id:3, bookName:"红楼梦"}
    ];
    var i=bookArr.findIndex((value)=>value.id==3);
    console.log(i);// 2
    

    3、filter()
    与find()使用方法也相同。不同的地方在于返回值。filter()返回的是所有满足条件的元素,而find()只返回第一个满足条件的元素。

    var userArr = [
        { id:1,userName:"laozhang"},
        { id:2,userName:"laowang" },
        { id:3,userName:"laoliu" },
    ]
    console.log(userArr.filter(item=>item.id>1));
    //[ { id: 2, userName: 'laowang' },{ id: 3, userName: 'laoliu' } ]
    
    let list=arr.filter(item=>{
                    return item.id>1
                }).map(item=>{
                    return item
                })
                return list
    

    上面2个方法返回结果一样

    可用用于数组去重:

    var myArr = [1,3,4,5,6,3,7,4];
    console.log(myArr.filter((value,index,arr)=>arr.indexOf(value)===index));
    //[ 1, 3, 4, 5, 6, 7 ]
    

    相关文章

      网友评论

          本文标题:es6数组方法find()、findIndex()与filter

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