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)
引數
引數 | 描述 |
function() | 必需。 為每個陣列元素執行的函式。 |
currentValue | 必需。 當前元素的值。 |
index | 可選。 當前元素的索引。 |
arr | 可選。 當前元素所屬的陣列。 |
thisValue | 可選。預設值為 undefined 作為其 this 值傳遞給函式的值。 |
返回值
型別 | 描述 |
陣列 | 透過測試的元素組成的新陣列。 如果沒有元素透過測試,則返回一個空陣列。 |
示例 2
返回 ages[] 中所有大於特定數字的值
<p><input type="number" id="ageToCheck" value="30"></p>
<button onclick="myFunction()">試一試</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) 的特性。
自 2013 年 7 月以來,所有現代瀏覽器都完全支援 ES5 (JavaScript 2009)
Chrome 23 |
IE/Edge 11 |
Firefox 21 |
Safari 6 |
Opera 15 |
2012 年 9 月 | 2012 年 9 月 | 2013 年 4 月 | 2012 年 7 月 | 2013 年 7 月 |