點燈坊

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

使 parse() 也能 Pipeline

Sam Xiao's Avatar 2020-03-28

JSON.parse() 負責將 JSON String 轉成 Object,唯其以 Static Method 呈現,特別將其 Function 化適合 Pipeline。

Version

macOS Catalina 10.15.4
VS Code 1.43.2
Quokka 1.0.284
Wink-fp 1.20.63

JSON.parse()

import { pipe, assoc } from 'ramda'

let data = `{"title": "Speaking JavaScript"}`

let f = pipe(
  JSON.parse,
  assoc('price', 100)
)

f(data) // ?

JSON.stringify() 可直接搭配 pipe(),唯其以 static method 形式比較不搭。

parse000

parse()

import { pipe, assoc } from 'ramda'

let data = `{"title": "Speaking JavaScript"}`

let parse = s => JSON.parse(s)

let f = pipe(
  parse,
  assoc('price', 100)
)

f(data) // ?

第 5 行

let parse = s => JSON.parse(s)

JSON.parse()parse() 方式呈現。

第 7 行

let f = pipe(
  parse,
  assoc('price', 100)
)

如此 pipe() 就能以 function 形式使用 parse()

parse001

Wink-fp

import { pipe, assoc } from 'ramda'
import { parse } from 'wink-fp'

let data = `{"title": "Speaking JavaScript"}`

let f = pipe(
  parse,
  assoc('price', 100)
)

f(data) // ?

Wink-fp 特別提供 function 版本的 parse(),更適合搭配 pipe()

parse()
String -> Object

將 JSON string 轉成 object

String:data 為 JSON strin

Object:回傳為 object

parse002

Conclusion

  • ECMAScript 很多內建都以 static method 提供,其實也可自行包成 function 更適合 pipeline 使用

Reference

MDN, JSON.parse()