我正在尝试使用Ramda将字符串附加到字符串的末尾,但以下内容不起作用。
R.append("A", "B")
它返回
['A','B']
有人知道在Ramda中这样做的好方法,或者这并不意味着我需要编写代码来解决javascripts concat
函数吗?
编辑:
我正在尝试执行以下操作
props = {
city: "Boston",
state: "Massachusetts",
zip: 22191
}
var appendCommaToCity = R.evolve({city: R.append(",")}
appendCommaToCity(props)
除非我在其他地方定义了函数并将其定义为内联函数,否则执行"A" + "B"
在此错误中不起作用。
答案 0 :(得分:3)
正如其他人所指出的,concat
是最简单的方法,使用以下任何一种方法:
const appendCommaToCity = R.evolve({city: R.concat(R.__, ",")})
// or
const appendCommaToCity = R.evolve({city: R.flip(R.concat)(",")})
第一个,使用占位符可能会更容易。
但我猜测你的结果是一个中间结构,后来用于将该城市加入该城市。如果是这样,那么这可能是过度的。至少在现代JS中,将它们直接组合起来太容易了:
const foo = ({city, state}) => `${city}, ${state}`
您可以在 Ramda REPL 。
中看到这一切答案 1 :(得分:0)
console.log(R.concat("ACD", "BEF")); // concatenates strings as they are
// => ACDBEF
// Or
var arr = R.append("ACD", "BEF"); // creates array ["B","E","F","ACD"]
var last = [arr.pop()]; // gets the last element "ACD" and removes it from the array
console.log(last.concat(arr).join('')); // adds the last to the beginning of the array then joins all to form a string
// => ACDBEF
// Or
console.log("ACD" + "BEF"); // simple js string addition
// => ACDBEF
// ++ There are more js methods
答案 2 :(得分:0)
console.log("A".concat("B").concat("C"))
console.log("".concat("A", "B", "C"))
console.log(String.prototype.concat("A", "B", "C"))

但"A" + "B"
只是a lot faster than concat