Pointfree присоединить массив к строке, по ключу в объекте, в Ramda
Можно ли это сделать без точек?
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 ответ:
Да, это можно сделать так:
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 ...