如何使用 JavaScript 在數組中查找匹配項
上週,我們詳細研究了 JavaScript 數組以及如何使用它們將多個值存儲在單個變量中。今天,您將學習一個有用的技巧,使用 Array.filter()
查找數組中的所有匹配項 方法。
Array.filter()
方法通過遍歷數組的所有元素來創建一個新數組,並將通過特定條件的元素作為數組返回。
作為參數傳遞的回調函數最多接受三個可選參數。第一個是迭代中的當前元素,第二個是當前項在數組中的索引,第三個是數組本身。
在回調正文中,您可以測試當前項目是否與您要查找的內容匹配,並返回一個布爾值 (true
或 false
) 相應地。
這是一個例子:
const values = [15, 45, 22, 19, 55, 62, 78];
// find all values > 25
const greaterThan25 = values.filter(item => {
return item > 25;
});
// find all values < 25
const lessThan25 = values.filter(item => item < 25);
console.log(greaterThan25);
// [45, 55, 62, 78]
console.log(lessThan25);
// [15, 22, 19]
Array.filter()
方法不僅限於原始數組。您甚至可以使用它來過濾對像數組 如下例所示:
const users = [
{
name: 'John Deo',
age: 35
},
{
name: 'Emma Kel',
age: 24
}
,
{
name: 'Kristy Adam',
age: 42
}
];
// find all users older than 40 years
const filteredUsers = users.filter(user => {
return user.age >= 40;
});
console.log(filteredUsers);
// [{ name: 'Kristy Adam', age: 42 }]
Array.filter()
過濾器適用於所有現代瀏覽器以及 Internet Explorer 9 及更高版本。但是,您可以使用 polyfill 來支持 IE6 及更高版本。
查看本指南以了解有關 JavaScript 數組及其方法的更多信息。