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 进行学习练习。如果这适用于您,请不要介意以上内容。)
我有以下代码:
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 进行学习练习。如果这适用于您,请不要介意以上内容。)