移至主內容
首頁
SLAT Blogs

主導覽

  • 首頁
使用者帳號選單
  • 登入

導航連結

  1. 首頁
  2. 部落格
  3. 社會派宅爸

[JS 筆記] 可選串連、條件三元、falsy、some與includes

By Jiajun, 10 十一月, 2023
javascript image from Wikimedia Commons

話說我在 Alpha Camp 上課已經邁入第二個月了,今天看到老師(助教?)的一段 code,實在不由得讚嘆 JS 的博大精深。這是在 Dev C3「後端應用實務」課程的其中一節,「用 Query String 打造搜尋功能」。以下 code 我有稍微改寫成菜雞 style,但仍保留許多值得筆記之處:

app.get('/movies', (req, res) => {
    // 一、可選串連運算子 `?.`
    const keyword = req.query.search?.trim();
    // 二、條件運算子 `?:`;三、空字串會被視為 false
    const matchedMovies = keyword ? movies.filter((item) => {
      // 四、some()是用一個 callback 函式作為函數來判斷真假,includes()是比對值來判斷
      return Object.values(item).some((property) => {
        if (typeof property === 'string'){
          return property.toLowerCase().includes(keyword.toLowerCase())
        } else {
          return false
        }
      })
    // 二、條件三元運算子 `?:`
    }) : movies;
    res.render('index', { movies: matchedMovies, baseUrl, keyword })
})
  1. 可選串連運算子 ?.,詳見 MDN
  2. 條件 (三元) 運算子 ?:,詳見 MDN
  3. falsy 假值 → 不用額外的表達式,即為 false。詳見 MDN
  4. 經 ChatGPT 的提點,在網路上找到以下說明:
    • some() 接受一個 callback 函數作為參數,你可以在這個函數中寫下自己的邏輯,來確定一個陣列是否包含至少一個符合你所寫條件的元素。
    • includes() 則對陣列中的每個元素進行一個通用的等於(equalTo)比較,如果陣列中至少有一個元素等於要查找的值,它就會返回真(true)。

(image source: Wikimedia Commons)

  • 社會派宅爸

部落格列表

管理日誌
LibreOffice 正體中文文件
肥貓的異想世界
軟體自由運動部落格
馬哥的大小事
My Libre World
社會派宅爸

最新文章

test title
Interview with Sandy Corzeta, Admin of Indonesia's Fediverse Instance 'misskey.id'
簡單處理在Ubuntu終端機啟動Miniconda的問題
在LibreOffice Calc利用Vlookup做精準搜尋
現在就加入 LibreOffice 團隊當全職開發者,處理 RTL/CTL/CJK 等事宜!
[JS 筆記] 可選串連、條件三元、falsy、some與includes
用QGIS + OpenStreetMap + Python 處理線形地理資料
申請墨西哥簽證的經驗談
0805 ITTS 田野筆記:與印尼開源社群的初次接觸
Setting up Mailman3 on Debian 11 (Bullseye)
試解決Zotero安裝後無法使用LibreOffice Integration引用文獻的問題
2023年5月的 LibreOffice 之月的獲獎者!
Powered by Drupal