JavaScript Array filter()

定義和用法

filter() 方法創建數組,其中填充了所有通過測試的數組元素(作為函數提供)。

注釋:filter() 不會對沒有值的數組元素執行該函數。

注釋:filter() 不會改變原始數組。

實例

例子 1

返回由 ages 數組中所有 18 歲或以上的值組成的數組:

var ages = [32, 33, 16, 40];
function checkAdult(age) {
  return age >= 18;
}
function myFunction() {
  document.getElementById("demo").innerHTML = ages.filter(checkAdult);
}

親自試一試

例子 2

返回由 ages 數組中所有大于等于特定數字的值組成的數組:

<p>Minimum age: <input type="number" id="ageToCheck" value="18"></p>
<button onclick="myFunction()">Try it</button>
<p>All ages above minimum: <span id="demo"></span></p>
<script>
var ages = [32, 33, 12, 40];
function checkAdult(age) {
  return age >= document.getElementById("ageToCheck").value;
}
function myFunction() {
  document.getElementById("demo").innerHTML = ages.filter(checkAdult);
}
</script>

親自試一試

語法

array.filter(function(currentValue, index, arr), thisValue)

參數值

參數 描述
function(currentValue, index, arr) 必需。為數組中的每個元素運行的函數。

函數參數:

參數 描述
currentValue 必需。當前元素的值。
index 可選。當前元素的數組索引。
arr 可選。當前元素所屬的數組對象
thisValue

可選。要傳遞給函數以用作其 "this" 值的值。

如果此參數為空,則值 "undefined" 將作為其 "this" 值傳遞。

技術細節

返回值: 包含所有通過測試的數組元素的數組。如果沒有元素通過測試,則返回一個空數組。
JavaScript 版本: ECMAScript 5

瀏覽器支持

所有瀏覽器都完全支持 filter() 方法:

Chrome IE Edge Firefox Safari Opera
Chrome IE Edge Firefox Safari Opera
支持 9.0 支持 支持 支持 支持

相關頁面

教程:JavaScript 數組

教程:JavaScript 數組 Const

教程:JavaScript 數組方法

教程:JavaScript 排序數組

教程:JavaScript 數組迭代