return할 answer에 sum, min 기본 값을 할당합니다.
최솟값은 앞선 문제와 같이 Number.MAX_SAFE_INTEGER를 이용한 방식을 활용하겠습니다.
% 연산자는 나머지 값을 반환합니다. 2로 나눈 나머지 값이 1이면 홀수이고 0이면 짝수이므로 조건문으로 홀수를 찾아 빈 배열에 push해 주면 됩니다.
새로운 배열을 돌며 더해줘서 sum을 구하고, 최솟값을 찾는 로직을 구현합니다.
let oddnumber = [12, 77, 38, 41, 53, 92, 85];
function odd1(oddnumber) {
let answer = { sum: 0, min: Number.MAX_SAFE_INTEGER };
let newArr = [];
for (let i of oddnumber) {
if (i % 2 === 1) {
newArr.push(i);
}
}
for (let a = 0; a < newArr.length; a++) {
answer.sum += newArr[a];
}
for (let j = 0; j < newArr.length; j++) {
if (newArr[j] < answer.min) answer.min = newArr[j];
}
return answer;
}
console.log(odd1(oddnumber));
아래는 강사님의 문제풀이 방식입니다.
위에 짠 코드보다 훨씬 간결합니다ㅠㅠ
function odd2(oddarr) {
let answer = [];
let sum = 0,
min = Number.MAX_SAFE_INTEGER;
for (let x of oddarr) {
if (x % 2 === 1) {
sum += x;
if (x < min) min = x;
}
}
answer.push(sum);
answer.push(min);
return answer;
}
console.log(odd2(oddnumber));