移至主內容
首頁
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)

  • 社會派宅爸
  • Log in or register to post comments

部落格列表

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

最新文章

簡單處理在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 之月的獲獎者!
提醒:LibreOffice Conference
2023年5月的 LibreOffice 之月,中途點!
Powered by Drupal