透鏡人

透鏡人

中等

簡介

在 JavaScript 中,透鏡是函式程式設計的概念,讓你能以模組化且不可變的方式存取和修改資料。它們本質上是由純粹的取值函式和設值函式構成的可組合配對,聚焦在物件內的某個特定欄位。

透鏡可以用來簡化程式碼、提高重用性,並避免常見的程式設計錯誤。例如,透鏡可以用來:

  • 存取和修改巢狀資料結構,而不必擔心資料的特定結構。
  • 以純粹的方式更新資料,而不會改變原始物件。
  • 將多個透鏡組合在一起,建立更複雜的透鏡,使其能以各種方式存取和修改資料。

說明

使用 lens 來更新巢狀記錄(僅限於具有不可變資料的語言)。

更新巢狀且不可變的記錄裡的欄位,實在有點煩人。 這類情況的程式碼有多繁瑣,取決於結構有多深。 假設你有一個 Person,裡面包含一個 Address,Address 有一個 Street,Street 又有一個 Number;那麼要更新 Number,就得先用新的 Number 建立一個新的 Street,再用新的 Street 建立新的 Address,最後用新的 Address 建立新的 Person。 已經搞混了嗎?

這個問題的其中一個解法,就是使用 lenses。

用 lenses 實作幾個存取記錄的函式。 測試套件也允許你完全避開 lenses,讓你可以試試不同的做法。

透過 GitHub 編輯 連結會在新視窗或分頁中開啟
JavaScript Exercism

準備好開始 透鏡人 了嗎?

註冊 Exercism,透過 37 個概念159 個練習 和真人引導來學習並精通 JavaScript,全部免費。