點燈坊

失くすものさえない今が強くなるチャンスよ

如何實現 Tuple ?

Sam Xiao's Avatar 2020-01-08

Tuple 算是 FP 都會提供的資料型別,ECMAScript 雖然沒有提供 Tuple,但可使用 Array Destructuring 輕易實現。

Version

macOS Catalina 10.15.2
VS Code 1.41.1
Quokka 1.0.271
ECMAScript 2015

Tuple

let getBook = () => {
  let title = 'FP in JavaScript'
  let price = 100

  return [title, price]
}

let [title, price] = getBook()

title // ?
price // ?

若 function 要回傳兩個以上值,最方便就是回傳 tuple,但 ECMAScript 目前還沒支援 tuple。

可將多值以 array 組合後回傳,user 可直接使用 array destructuring 對 array 解構,還可順便定義 varaible 名稱。

tuple000

Conclusion

  • 雖然亦可使用 object destructuring 實現 tutple,但限制了 user 的 variable 名稱要跟 property 一樣,所以實務上建議使用 array destructuring 實現 tuple