저는 Ramda에 상당히 익숙하며, 여전히 특정 기능에 대해 고민하고 있습니다. 현재, 나는 R.useWith
으로 약간 고심하고 있습니다.왜이 기본 "R.useWith"가 제대로 작동하지 않습니까?
let myArray = [
{
a: 'wat',
b: 'foo'
},
{
a: 'something',
b: 'something_else'
},
{
a: 'booyah',
b: 'duh'
}
];
그리고 각 개체에 bar
동일하게 foo
의 속성을 설정하려면 :
의 내가 객체의 배열이 있다고 가정 해 봅시다. 나는 이것을 할 수있는 몇 가지 방법이 있다는 것을 알고 있으며, 나는이 기능을 배우려고 시도하면서 고의적 인 예제로 이것을 사용하고있다. 한 가지 방법이 할 수있는 것 :
let setFooToBar = R.assoc('foo')('bar');
let mapMyArray = R.map(R.__, myArray);
그래서이 시점에서, 나는 개체를 예상하는 기능 setFooToBar
있고, bar
에 재산 foo
을 설정합니다
mapMyArray
이 있고, 의지 각
object
을
myArray
에서 해당 기능으로 매핑하십시오. 따라서, 예상대로이 작동합니다
let callFirstWithSecond = (arg1, arg2) => arg1(arg2);
R.useWith(
callFirstWithSecond,
[
R.map(R.__),
R.assoc('foo')
]
)(myArray, 'bar')
:
mapMyArray(setFooToBar)
, 나는 이해하지 못하는 것,이 방법은 방법을 작동하지 않는 이유가 그것을 기대할 수있다 이전 접근법과 동일한 것을 반환하기를 기대합니다. 객체의 새 배열은 각각 foo
이라는 새 속성이 bar
으로 설정되었습니다. 그러나 실제로 새로운 함수를 반환하고 있습니다. 나는 내가 놓친 논점을 알아낼 수 없다.
미리 도움을 청하십시오!
아, 고마워, 스캇! 그것은 총체적인 감각을 만든다. .. 어리석은 실수. –
이것은 [주기적 자리 표시 자] (https://github.com/sanctuary-js/sanctuary-def/issues/73)가 직관적임을 나타냅니다. ;) – davidchambers