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

2021-05-08  本文已影响0人  依然_8deb

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 ]
上一篇下一篇

猜你喜欢

热点阅读