filter()过滤:创建一个新数组,其包含通过提供函数实现的测试的所有元素
var arr = [
{name:'Jane', age: 22, sex:'female'},
{name:'Linda', age: 31, sex:'female'},
{name:'Linda', age: 24, sex:'male'},
{name:'kangkang', age: 15, sex:'male'},
{name:'Micle', age: 40, sex:'male'}
]
单个条件单个数据的过滤
function filterByName(arr, name) {
return arr.filter(item => item.name == name)
}
console.log(filterByName(arr, 'Mark'))
//[{name: "Micle", age: 40, sex: "male"}]
多个数据单个条件的过滤
function filterByName1(arr, nameArr) {
let result = []
for(let i = 0; i < nameArr.length; i++) {
result.push(...(arr.filter(item => item.name == nameArr[i])))
}
return result
}
console.log(filterByName1(arr,['Linda','Jane']))
//[{name: "Linda", age: 31, sex: "female"}, {name: "Linda", age: 24, sex: "male"}, {name: "Jane", age: 22, sex: "female"}]
单个数据多个条件的过滤
function filterByName2(arr, name, age){
return arr.filter(item => item.name == name && item.age == age)
}
console.log(filterByName2(arr,'Linda',31))
{name: "Linda", age: 31, sex: "female"}