iT邦幫忙

2021 iThome 鐵人賽

DAY 26
0
Modern Web

寫出好維護又簡潔的 react 程式碼 feat: Function Programming系列 第 26

day26: 開始體驗 ramda.js

今天我們要開始體驗 Ramda,請大家到 Ramda.js 官網安裝 Ramda 後,
就可以開始以下的實作。

像是前幾天提到用 curry 實作的 add function,
Ramda 就有提到封裝好的 function。

add

import * as R from 'ramda';
R.add(3)(4); // 7
R.add(3,4); // 7

以上兩種寫法都可以得到相同的結果。

map

const incrementOne = x => x + 1;

R.map(incrementOne, [3, 4, 5]); //=> [4, 5, 6]

R.map(incrementOne, {x: 3, y: 4, z: 5}); //=> {x: 4, y: 5, z: 6};

比較特別得是 Ramda.js 的 map 有實作了 object 也可以透過 map 去做 object 的複製和值的變更的方法。

pipe

使用 ramda.js 的 pipe 可以把 function 組合在一起。

const array = [1,2,3];
const multiplyFunc = x =>x*3;

const result =(x)=>
 {return R.pipe(
   R.map(multiplyFunc,R.__),
   R.difference(R.__, [7,6,5,4,3]),
 )(x)}
result(array); // 9

上一篇
Day25: pipe
下一篇
day27: function composition
系列文
寫出好維護又簡潔的 react 程式碼 feat: Function Programming30

尚未有邦友留言

立即登入留言