Ramda - 使用 applySpec 访问地图元素

Ramda - Accessing map's element with applySpec

我有以下代码:

const commaString = "test,test1"

const getValueLabelList = compose(
  map(
    applySpec({
      value: e => e,
      label: e => e,
    })
  ),
  split(",")
)

getValueLabelList(commaString) -> [{ value: "test", label: "test" }, { value: "test1", label: "test1" }]

我一直想知道有没有可以替代e => e的Ramda函数?

我想尽可能保持陈述性。

找到了 clone 方法,它似乎可以满足我的要求。

不确定这是否是唯一的方法。所以我暂时不接受这个答案。

编辑:

擦掉上面的答案,identity似乎是正确的方法。虽然,我会离开它,因为它可能是实现相同结果的另一种方式。

虽然您自己的回答正确地将 identity 识别为可能要使用的 Ramda 函数,但我很好奇您为什么会选择在此处使用 Ramda。 Ramda(免责声明:我是 Ramda 的创始人之一)是一个库,一种旨在使 Javascript 中的某种编码风格更容易的工具。它不是一个框架。我建议您仅在简化代码时才使用它。这个香草版本似乎更简单:

const getValueLabelList = (str) => 
  str .split (',') .map (s => ({value: s, label: s}))

const commaString = "test,test1"

console .log (
  getValueLabelList (commaString)
)

(当我之前提出这一点时,有些人说他们正在对 Ramda 进行学习练习。如果这适用于您,请不要介意以上内容。)