PointFree通过对象中的键,在Ramda中将Array连接到String

时间:2016-05-27 09:52:28

标签: javascript functional-programming pointfree ramda.js

可以免费this吗?

var joinByKey = R.curry(function(key, model){
    return R.assoc(key, R.join(',' ,R.prop(key, model)), model);
});

var input = { a: ['1', '2', '3'] };
var result = joinByKey("a", input); // {"a": "1,2,3"}

1 个答案:

答案 0 :(得分:1)

是的,可以这样做:

const joinByKey = key => R.over(
    R.lensProp(key),
    R.join(',')
);

const input = { a: ['1', '2', '3'] };
const result = joinByKey("a")(input); // {"a": "1,2,3"}

如果您想要使用它,请不要使用:

const joinByKey = R.curry((key, model) => R.over(
  R.lensProp(key),
  R.join(',')
)(model));

var input = { a: ['1', '2', '3'] };
joinByKey("a", input); // {"a": "1,2,3"}

第二个既可以使用也可以不进行处理。

我发现它比你的版本更具可读性,与@naomik所说的相反......