目录

JavaScript Array filter()

示例1

返回 Ages[] 中 18 岁或以上的所有值的数组:

const ages = [32, 33, 16, 40];
const result = ages.filter(checkAdult);

function checkAdult(age) {
  return age >= 18;
}
亲自试一试 »

描述

这个filter()方法创建一个新数组,其中填充了通过函数提供的测试的元素。

这个filter()方法不会对空元素执行该函数。

这个filter()方法不会改变原始数组。


语法

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

参数

Parameter Description
function() Required.
A function to run for each array element.
currentValue Required.
The value of the current element.
index Optional.
The index of the current element.
arr Optional.
The array of the current element.
thisValue Optional. Default undefined
A value passed to the function as its this value.

返回值

类型 描述
数组 通过测试的元素数组。
如果没有元素通过测试,则为空数组。

示例2

返回 Ages[] 中超过特定​​数字的值:

<p><input type="number" id="ageToCheck" value="30"></p>

<button onclick="myFunction()">Try it</button>

<p id="demo"></p>

<script>
const ages = [32, 33, 12, 40];

function checkAge(age) {
  return age > document.getElementById("ageToCheck").value;
}

function myFunction() {
  document.getElementById("demo").innerHTML = ages.filter(checkAge);
}
</script>
亲自试一试 »


浏览器支持

filter()是 ECMAScript5 (ES5) 功能。

所有浏览器完全支持 ES5 (JavaScript 2009):

Chrome Edge Firefox Safari Opera IE
Yes Yes Yes Yes Yes 9-11