Javascript Ramda reduce字符串替换上一个字符串
我有一个字符串列表,我想使用ramda减少这些字符串:Javascript Ramda reduce字符串替换上一个字符串,javascript,ramda.js,Javascript,Ramda.js,我有一个字符串列表,我想使用ramda减少这些字符串: ["red blue green", "pink blue green", "red orange green", "red blue black"] 我想减少列表,这样我就剩下: "pink orange black" 因此本质上只替换与前一个字符串的差异,而不覆盖整个字符串 这些步骤应该是: "red blue green" "pink blue green" "pink orange green" "pink orange bla
["red blue green", "pink blue green", "red orange green", "red blue black"]
我想减少列表,这样我就剩下:
"pink orange black"
因此本质上只替换与前一个字符串的差异,而不覆盖整个字符串
这些步骤应该是:
"red blue green"
"pink blue green"
"pink orange green"
"pink orange black"
这就是我目前拥有的:
const strings = ["red blue green", "pink blue green", "red orange green", "red blue black"]
const replaceString = (old, acc) => R.replace(old, acc, acc)
R.reduce(replaceString, R.head(strings))
我有一个代码,可以从初始数据中得到你想要的答案。但我真的不知道它是否解决了你的一般问题:
const colors = ["red blue green", "pink blue green", "red orange green", "red blue black"];
const fn = pipe(
map(split(' ')), // [['red', 'blue', 'green'], ['pink', 'blue' 'green'],
// ['red', 'orange', 'green'], ['red' 'bluee', 'black']]
flatten, // ['red', 'blue', 'green', 'pink', 'blue' 'green',
// 'red', 'orange', 'green', 'red' 'bluee', 'black']
countBy(identity), // {red: 3, blue: 3, green: 3, pink: 1, orange: 1, black: 1}
filter(equals(1)), // {pink: 1, orange: 1, black: 1}
keys, // ['pink', 'orange', 'black'
join(' ') // 'pink orange black'
)
fn(colors); //=> 'pink orange black'
您可以在上看到这一点。我有一个代码,可以从初始数据中获得您想要的答案。但我真的不知道它是否解决了你的一般问题:
const colors = ["red blue green", "pink blue green", "red orange green", "red blue black"];
const fn = pipe(
map(split(' ')), // [['red', 'blue', 'green'], ['pink', 'blue' 'green'],
// ['red', 'orange', 'green'], ['red' 'bluee', 'black']]
flatten, // ['red', 'blue', 'green', 'pink', 'blue' 'green',
// 'red', 'orange', 'green', 'red' 'bluee', 'black']
countBy(identity), // {red: 3, blue: 3, green: 3, pink: 1, orange: 1, black: 1}
filter(equals(1)), // {pink: 1, orange: 1, black: 1}
keys, // ['pink', 'orange', 'black'
join(' ') // 'pink orange black'
)
fn(colors); //=> 'pink orange black'
您可以在上看到这一点,最终结果不是
“红-蓝-黑”
?您能解释一下您希望在每个步骤中看到什么吗?我无法理解您是如何从输入到建议输出的。当然,我们已经在上面进行了更新。因此,在步骤n
,您正在替换索引n-1
中的值?字符串的其他部分是什么并不重要?你说的是与“上一个”字符串的区别,但你似乎意味着与原始字符串的区别(以某种形式)。是这样吗?最终的结果不是“红蓝黑”?你能解释一下你希望在每一步看到什么吗?我无法理解您是如何从输入到建议输出的。当然,我们已经在上面进行了更新。因此,在步骤n
,您正在替换索引n-1
中的值?字符串的其他部分是什么并不重要?你说的是与“上一个”字符串的区别,但你似乎意味着与原始字符串的区别(以某种形式)。是吗?这很好用,谢谢!Reduce从一开始就肯定是错误的。这非常有效,谢谢!从一开始,Reduce肯定是错误的。