• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

node.js에서 fxjs는 어떻게 사용하는건가요?

20.04.02 19:24 작성 조회수 278

0

안녕하세요. 강의 잘 듣고 있습니다.

아... 질문 올렸다가 삽질하다보니 해결되어 계속 질문내용을 수정하게되네요 ^^;

1.

lodash에서 _.go 같은 기능은 없는건가요?

아래와 같이 JSON.stringify를 호출되게 해보려 하는데 잘 안되어서요.

_.go(list,
_.filter((item) => item.name === name),
_.head(),
JSON.stringify
);

_(list)

.filter((item) => item.name === name)

.header() 까지는 잘 되는데요...

그리고  _와 L은 섞어 쓰면 오류가 나나보네요.

2.

1번 질문에서 L.head()의 결과가 undefined나 null이 되었을때는 {} 를 JSON으로 만들고 싶은데 어떻게 하면 좋을까요?

생각해보니 defaultTo같은걸로 처리하면 되긴 할꺼 같긴하네요.

3.

아래 두 코드는 결과가 같을꺼라 기대했는데 왜 자꾸 에러가 나는지 알 수 있을까요?

const _ = require("fxjs/Strict");
var result = _.go([1,2,3,4,5], _.reduce(_.multiply3));
console.log(result);

const _ = require("lodash");
var result = _([1,2,3,4,5]).reduce(_.multiply3);
console.log(result);

fxjs에서 _.reduce만을 썼을때는 문제는 없는데 go와 같이쓰면 문제가 발생하네요.

아래와 같이 하면 되긴 하는데 좀 어색하네요. ㅠㅠ

var result = _.go([1,2,3,4,5],
    _.curryN(2_.reduce)(_.multiply3));
console.log(result);

답변 부탁드립니다. 감사합니다.

답변 1

답변을 작성해보세요.

0

lodash에서 _.go 같은 기능은 없는건가요?

lodash에 _.go 와 같이 비동기를 제어해주는 파이프라인 함수는 없습니다 :)

그리고 _.head() 를 _. head로 바꿔보세요.

fxjs에서의 reduce

fxjs에서의 _.reduce는 함수를 하나만 전달할때만 커링이 됩니다. 기본 값을 넣어주고 싶을 때는 반드시 인자 3개를 넣어주야합니다. _.reduce(f, acc, list) 처럼요. :)

감사합니다.