filter() 方法創(chuàng)建一個新數(shù)組,其中所有元素都通過了由提供的回調(diào)函數(shù)實現(xiàn)的測試。
注意: filter()方法不會更改原始數(shù)組。
array.filter(callback, thisArg)
var age = [1, 30, 39, 29, 10, 13];
var val = age.filter(isAdult);
function isAdult(element) {
return element >= 18;
}測試看看?/?表格中的數(shù)字指定了完全支持filter()方法的第一個瀏覽器版本:
| Method | ![]() | ![]() | ![]() | ![]() | ![]() |
| filter() | 是 | 1.5 | 是 | 是 | 9 |
| 參數(shù) | 描述 |
|---|---|
| callback | 要為數(shù)組中的每個元素運行的函數(shù)。 函數(shù)參數(shù):
|
| thisArg | (可選)值,在執(zhí)行回調(diào)時使用 |
| 返回值: | 一個具有通過測試的元素的新數(shù)組。如果沒有元素通過測試,則將返回一個空數(shù)組 |
|---|---|
| JavaScript版本: | ECMAScript 5 |
以下示例使用filter()方法根據(jù)搜索條件過濾數(shù)組內(nèi)容:
var fruits = ['apple', 'mango', 'banana', 'orange', 'grapes'];
/**
* 基于搜索條件的數(shù)組篩選項(查詢)
*/
function filterItems(query) {
return fruits.filter(function(el) {
return el.indexOf(query) > -1;
})
}
function myFunc(val) {
document.getElementById("result").innerHTML = filterItems(val);
}測試看看?/?