数组遍历之filter()和find()的区别

filter()

概念:顾名思义过滤,遍历一组数组将符合条件的全部筛选出来,返回一个数组,如果没有符合条件的则返回一个空数组。

语法:数组.filter((item,index,arr)=>{})

例:假设有一个对象数组,获取数组中指定年龄的项

varperson = [

{

name: "小红",

age: 12

},

{

name: "小蓝",

age: 12

},

{

name: "星仔",

age: 15

}

];

varfilters1 = person.filter((item)=> {item.age == 12;});

console.log(filters1);

//[{name: "小红", age: 12},{name: "小蓝", type: 12}]

varfilters2 = person.filter((item)=> {item.age == 14;});

console.log(filters2);

//[]

find()

概念:顾名思义找到,遍历一组数组将符合条件的找出来,返回一个对象,只返回第一个符合条件的,如果有两个三个四个只返回第一个找到的,如果没有符合条件的则返回一个undefined

语法:数组.find((item,index,arr)=>{})

例:假设有一个对象数组,获取数组中指定年龄的项

varperson = [

{

name: "小红",

age: 12

},

{

name: "小蓝",

age: 12

},

{

name: "星仔",

age: 15

}

];

varfind1 = person.find((item)=> {item.age == 12;});

console.log(find1);

//{name: "小红", age: 12}

varfind2 = person.find((item)=> {item.age == 14;});

console.log(find2);

//undefined

总结:

filter()和find()的区别是filter()是将符合条件的所有项全部返回出来,返回的是一个数组,如果没有符合条件的则返回一个空数组;find()是将符合条件的第一项返回出来,返回的是一个对象,如果没有符合条件的就是undefined


版权声明:本文为XZ85201原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。