使用ramda修改数组中的数据

Using ramda to modify data in array

输入:

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

输出:

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

如果我在 vanilla 中这样做,会遇到一些恼人的可变性问题 javascript。

使用 ramda 的好案例。

类似于:

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


const result = convertArr(arr);

我卡住了。有什么想法可以使用 Ramda 函数吗?

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

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

可以映射对象数组,通过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>