使用ramda修改数组中的数据

时间:2019-10-16 12:18:33

标签: ramda.js

输入:

[
  {
    temp: "24",
    date: "2019-10-16T11:00:00.000Z"
  }
]

输出:

[[new date("2019-10-16T11:00:00.000Z").getTime(), 24]]

如果我使用普通javascript进行了一些烦人的可变性问题。

使用ramda的好案例。

类似的东西:

const convertFunc = ...
const convertArr = R.map(convertFunc)


const result = convertArr(arr);

我被困住了。有什么想法可以使用Ramda功能吗?

2 个答案:

答案 0 :(得分:2)

我不确定Ramda是否会添加任何实质性内容。特别是如果您可以使用参数解构:

map(({temp, date}) => [new Date(date).getTime(), temp],
  [{ temp: "24",
     date: "2019-10-16T11:00:00.000Z"}]);
//=> [[1571223600000, "24"]]

答案 1 :(得分:1)

您可以映射对象数组,并使用R.evolve通过Date.parse()将日期字符串转换为时间,然后获取R.props转换为数组数组。

const { map, pipe, evolve, identity, props } = R

const fn = map(pipe(
  evolve({ temp: identity, date: Date.parse }),
  props(['date', 'temp'])
))

const data = [{temp: "24",date: "2019-10-16T11:00:00.000Z"}]

const result = fn(data)

console.log(result)
<script src="https://cdnjs.cloudflare.com/ajax/libs/ramda/0.26.1/ramda.js"></script>