迭代陣列 for...of, filter( )


Posted by mijouhsieh on 2023-03-26

for...of

let filteredMovies = [] //裝篩選後符合條件的電影資料
for (const movie of movies) {
  if (movie.title.toLowerCase().includes(keyword)) {
    filteredMovies.push(movie)
  }
}

當一部的電影的 title 有包含 keyword 時,就把這部電影推進 filteredMovies 陣列裡

filter()

filter() 建立一個經指定之函式運算後,由原陣列中通過該函式檢驗之元素所構成的新陣列。
filter() 需要的參數是一個條件函式,只有通過這個條件函式檢查的項目,才會被 filter 保留並回傳一個新的陣列。

let numbers = [1, 2, 3, 4, 5, 6]
function isLessThan3(number) {
  return number < 3
}
console.log(numbers.filter(isLessThan3)) // [1,2] ,小於 3 的項目才會被保留

numbers陣列裡有1~6
isLessThan3 函式,會return 參數 < 3
numbers陣列透過filter方法,filter參數必須是一個條件函式,isLessThan3會return < 3 的項目
let newNumbers = numbers.filter(number => number < 3)
用變數newNumbers接回傳值,filter裡的條件函式改成箭頭函式,
filter(參數 => 參數 < 3)


var newArray = arr.filter(callback(element[, index[, array]])[, thisArg])

參數
callback
此函式為一個斷言,用於測試陣列中的每個元素。回傳值為 true 時將當前的元素保留至新陣列中,若為 false 則不保留。可傳入三個參數:

element - 原陣列目前所迭代處理中的元素。
index(選擇性) - 原陣列目前所迭代處理中的元素之索引。
array(選擇性) - 呼叫 filter 方法的陣列。
thisArg(選擇性) - 可選的。執行 callback 回呼函式的 this 值。

回傳值 - 一個元素為通過回呼函式檢驗的新陣列。
filter() 不會修改呼叫它的原始陣列。


#iterate-array #for...of #array.filter(條件函式)







Related Posts

#1 擬訂計畫

#1 擬訂計畫

Vite系列#安裝vite&在 Composition API 及 Options API 進行切換

Vite系列#安裝vite&在 Composition API 及 Options API 進行切換

javascript判斷式 & 迴圈

javascript判斷式 & 迴圈


Comments