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 ]