function solution(arr) {
// MIN_SAFE_INTEGER 사용해서 안전한 최소 정수값으로 max 초기화
let answer,
max = Number.MIN_SAFE_INTEGER;
for (let x of arr) {
// 문자열 변환 - 배열 변환 - reduce 사용해서 자릿수 합 추출
let sum = x
.toString()
.split("")
.reduce((a, b) => a + Number(b), 0);
// 자릿수 합이 이전 자릿수 합보다 크다면
if (sum > max) {
max = sum;
answer = x;
// 자릿수 합이 같고 원래 값이 더 크다면
} else if (sum === max && x > answer) {
answer = x;
}
}
return answer;
}
let arr = [128, 460, 603, 40, 521, 137, 123];
console.log(solution(arr)); // 137