用ramda來整理資料吧 #2櫻桃漲價了

Winsome on 2020-02-13 Thu

資料情境

我們有一個水果價目表,
現在想要把櫻桃的價錢改成 40

let data = [
  { name: "蘋果", price: 30 },
  { name: "香蕉", price: 12 },
  { name: "櫻桃", price: 25 },
]

作法

1. 換object

let res = R.map(R.when(R.propEq('name', '櫻桃'), () => { return { name: '櫻桃', price: 40 }; }))(data)

2. 只換價錢(like)

// 當"name"是"櫻桃"的時候,就把"price"換成40
let res = R.map(R.when(R.propEq("name", "櫻桃"), R.assoc("price", 40)))(data)

補充

R.map()是curry的形式,也可以寫成這樣

let res = R.map(R.when(R.propEq("name", "櫻桃"), R.assoc("price", 40)), data)

ramda文件怎麼看