안녕하세요 알고리즘 문제풀다가 이해가 안되는 구문이있어서 질문올려봅니다!
문제내용은 마라톤 참가자중 완주하지 못한 참가자를 찾는다는 내용으로
참가자 배열 participant 완주자배열 completion 을 받아서 완주를 못한사람을 return 하는 내용입니다.
아래가 solution 이구요.
function solution(participant, completion) {
var dic = completion.reduce((obj, t)=> (obj[t]= obj[t] ? obj[t]+1 : 1 , obj) ,{});
return participant.find(t=> {
if(dic[t])
dic[t] = dic[t]-1;
else
return true;
});
}
위 코드에서
(obj[t]= obj[t] ? obj[t]+1 : 1 , obj)
이 구문이 이해가 안갑니다. 제가 해당 문법을 모르고 있는거같은데
obj[t] 를 삼항연산으로 할당하는데 obj[t] 가 true 일 경우 obj[t]+1 (무슨 의미인지 모르겠습니다)
을 할당하고 false 일 경우 obj[t] 의 value를 1 로 할당한다(?)
그리고 마지막 ,obj 도 무슨의미인지도 모르겠습니다…
이 문법이 전체적으로 어떤식으로 사용되는지 설명해주실 수 있는분 부탁드립니다~!!