filter() 方法使用一个过滤函数创建一个新数组,只保留基于该函数返回 true 的元素。结果是一个长度等于或小于原始数组长度的数组,包含与原始数组相同元素的子集
const array = [10, 11, 3, 20, 5]
//使用一个过滤函数创建一个新数组
const greaterThanTen = array.filter(item => item > 10)
console.log(greaterThanTen) //[11, 20]
示例:过滤对象数组
const countries = [{
name: 'Nigeria',
continent: 'Africa'
},
{
name: 'Nepal',
continent: 'Asia'
},
{
name: 'Angola',
continent: 'Africa'
},
{
name: 'Greece',
continent: 'Europe'
},
{
name: 'Kenya',
continent: 'Africa'
},
{
name: 'Greece',
continent: 'Europe'
}
]
let asianCountries = countries.filter(
country => country.continent === 'Asia'
)
console.log(asianCountries); // [{name: "Nepal", continent: "Asia"}]
示例:在数组中搜索特定字母
//filter方法使用一个过滤函数创建一个新数组,只保留基于该函数返回 true 的元素
const names = ['Victoria', 'Pearl', 'Olivia', 'Annabel', 'Sandra', 'Sarah']
const filterItems = letters => names.filter(
// includes() 是 ES7 新增的数组方法,用于判断数组是否包含某个元素,并根据条件返回 true
name => name.includes(letters)
)
console.log(filterItems('ia')) // ["Victoria", "Olivia"]