Pointfree 在 Ramda 中通过对象中的键将数组连接到字符串
Pointfree Join Array to String, by key in object, in Ramda
可以this pointfree 完成吗?
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"}
是的,可以这样做:
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"}
第二个既适用于 currified 也适用于 uncurrified。
我发现它比你的版本更具可读性,与@naomik 所说的相反...
可以this pointfree 完成吗?
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"}
是的,可以这样做:
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"}
第二个既适用于 currified 也适用于 uncurrified。
我发现它比你的版本更具可读性,与@naomik 所说的相反...