點燈坊

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

使 stringify() 也能 Pipeline

Sam Xiao's Avatar 2020-03-27

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

Version

macOS Catalina 10.15.4
VS Code 1.43.2
Quokka 1.0.284
Ramda 0.27.0
Wink-fp 1.20.60

JSON.stringify()

import { pipe, clone } from 'ramda'

let data = {
  title: 'FP in JavaScript'
}

let f = pipe(
  clone,
  JSON.stringify
)

f(data) // ?

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

stringify000

stringify()

import { pipe, clone } from 'ramda'

let data = {
  title: 'FP in JavaScript'
}

let stringify = o => JSON.stringify(o)

let f = pipe(
  clone,
  stringify
)

f(data) // ?

第 7 行

let stringify = o => JSON.stringify(o)

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

第 9 行

let f = pipe(
  clone,
  stringify
)

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

stringify002

Wink-fp

import { pipe, clone } from 'ramda'
import { stringify } from 'wink-fp'

let data = {
  title: 'FP in JavaScript'
}

let f = pipe(
  clone,
  stringify
)

f(data) // ?

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

stringify()
Object -> String

將 object 轉成 JSON string

Object:data 為任意 object

String:回傳為 JSON string

stringify001

Conclusion

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

Reference

MDN, stringify()