JS 陣列方法 – filter()

在 JavaScript 中,filter()也是常常拿來處理陣列資料的方法,可以把它想像成一個濾網,只有通過條件測試(回傳值為 true )的資料才會被取出。

基本語法

主要功能是從原有的陣列中,篩選出條件符合的元素,並將這些元素組成新的陣列後回傳。

const newArray = array.filter((element, index, array)=>{
	// 回傳 true 表示保留該元素,false 則捨棄
	return condition;
}
  • element:當前處理元素
  • index(選填):當前元素的索引值
  • array(選填):呼叫 filter 的原始陣列

filter()的運用

ex1: 篩選出大於 10 的數字

const numbers = [5,12,130,44]
const filtered = numbers.filter(num =>num > 10)
console.log(filtered)

ex2: 篩選出物件陣列中的資料

const todos = [
	{id:1,task:'寫功課',completed:true},
	{id:2,task:'打電動',completed:false},
	{id:3,task:'和朋友吃飯',completed:false},
]

const completedTask = todos.filter((todo) => todo.completed)