강의

멘토링

커뮤니티

Inflearn コミュニティ Q&A

pnmathgrading1107 のプロフィール画像
pnmathgrading1107

投稿した質問数

関数型プログラミングとJavaScript ES6+

展開演算子

나머지연산자의 사용법에 대해 질문있습니다.

作成

·

277

1

github에 있는 functional es 코드를 보는중에 정말 이해가 안되는부분이 있어 질문드립니다.

  const aa = (a, ...before) => go(
        a,
        a => a + 3,
        ...before, // <--- before에 걸리는 함수가 있으면 여기에 추가될 예정
        a => a + 6,
        console.log);

    aa(1);

...before 이런 기법을 통해서 앞으로 올 함수들과 조합할 수 있다고 하셨는데요. go가 중간에 []를 만나게되서 에러가 나야되지않나요? 실제로 디버깅해보면 문제없이 작동하고 go가 받은 인자들을 reduce로 넘길때 ...before은 무시됩니다. 그래서 ...before대신에 []을 그냥 넣어봤더니 이번엔 에러가 납니다.
go나 reduce내부에서 []나 undefined를 만났을때 다루는 코드가 있나? 하고 코드를 봤더니 그런것도 없습니다.

왜 ...연산자를 통해 받은 ...before만 go의 내부에서 reduce함수로 갈때 무시되는건가요?

함수형-프로그래밍javascript

回答 2

1

mduniv님의 프로필 이미지
mduniv
インストラクター

[1, ...[], 2] 의 결과가 [1, 2] 입니다.

...before 대신에 ...[] 를 넣으시면 에러가 나지 않습니다.

감사합니다.

0

iternity님의 프로필 이미지
iternity
質問者

답변 감사합니다. before가 []니까 ...[]로 들어가야되는군요. 이런 멍청한 질문올려서 죄송합니다.

pnmathgrading1107 のプロフィール画像
pnmathgrading1107

投稿した質問数

質問する