(grouped[key] = grouped[key] || []).push(val) 부분에서 ()는 뭔가요?

미해결질문
ryu sin 프로필

안녕하세요. 정말 좋은 강의 잘 듣고 있습니다. 너무 재미있습니다 ㅎㅎ;

내용은 이해가 가지만, 처음 보는 형식이라서 질문 올립니다.

(grouped[key] = grouped[key] || []).push(val)

이 부분인데요, grouped[key] 등이 괄호로 쌓여 있습니다.

grouped[key]에 해당하는 밸류가 있으면 넣고, 아니면 빈 리스트를 출력하라는 것은 알겠는데

if 문을 사용한 것도 아니고, var를 이용해서 옵젝트를 저장해서 업데이트를 한것도 아닌데

한번에 저렇게 괄호를 써서 계산을 해 버려도 되는지요.

저렇게 표현하는 방식의 명칭이 따로 있는 건가요?
아니면 일종의 grouping인가요?

var _group_by = _curryr(function(data, iter){ <p>    return _reduce(data, function(grouped, val){</p><p>    var key = function(){ return iter(val)};</p><p>            (grouped[key] = grouped[key] || []).push(val)</p><p>            return grouped;</p><p>        }, {}); </p><p>  })</p>
유인동 프로필
유인동 8달 전

이해하산대로 괄호로 묶어서 할당과 참조를 험께 하도록 코딩한 것 입니다. 문장이 아닌 식으로 표현해서 코드를 간결하게 하고자 한 것 입니다. 감사합니다.