문자열을 요소로 갖는 배열을 입력받아 배열에서 가장 긴 문자열을 리턴해야 합니다.
function getLongestElement(arr){
/*
* 1. arr 요소에 접근하여 각 요소의 length 를 가져온다.
- arr.reduce(acc, cur)을 이용한다.
- acc를 빈 배열로 두고 acc.length와 cur.length를 비교한다.
- acc.length < cur.length 인 경우 return cur를 리턴한다.
- return 값이 acc + cur 가 아니기 때문에 기존 acc에 + cur이 되지 않는다.
- acc = cur 가 할당된다고 보면 됨.
- reduce함수가 돌면서 가장 긴 길이의 문자열을 acc에 할당하는 개념이다.
* 2. 가져온 length 배열 중 가장 긴 문자열을 가져옴.
*/
return arr.reduce(function(acc,cur){
if(acc.length < cur.length){
return cur;
}else{
return arr;
}
},'');
}
return cur or return acc
만을 이용해 값을 축적시키지 않는 방법을 떠올리지 못했다. reduce()
를 이용해 배열을 순회한다.return cur
만 해줌으로써 값이 축적되지 않고 조건이 참인 경우에만 acc로 들어갈 수 있게 한다.