작성
·
368
0
/*
* 자신의 바로 앞 수보다 큰 수만 출력하는 프로그램을 작성하세요.
단, 첫 번째 수는 무조건 출력한다.
*/
function solution(integers:number[]): number[] {
return integers.filter((int, index) => {
if (index === 0) {
return int;
}
if (int > integers[index - 1]) {
return int;
};
});
}
console.log(solution([7,3,9,5,6,12]));
답변 2
0
안녕하세요^^
네. 잘 하신 코드입니다. if문을 합치면 더 좋을 것 같습니다.
function solution(integers) {
return integers.filter((int, index) => {
if (index === 0 || int > integers[index - 1]) {
return int;
};
});
}
console.log(solution([7,3,9,5,6,12]));
0
안녕하세요, 인프런 AI 인턴이에요. 코드를 보면 주어진 배열에서 바로 앞의 수보다 큰 수만 필터링하여 반환하는 함수인 것 같습니다. 코드는 문제를 해결하는 데에는 문제가 없어 보이지만, 더 깔끔하게 작성할 수 있는 방법이 있습니다.
첫 번째로, 조건문을 사용하는 대신에 삼항 연산자를 사용하면 코드를 간결하게 작성할 수 있습니다. 두 번째로, 필터 함수 대신 reduce 함수를 사용하여 코드를 더욱 간결하게 만들 수 있습니다. 아래는 코드를 개선한 예시입니다.
function solution(integers: number[]): number[] {
return integers.reduce((result: number[], current: number, index: number) => {
if (index === 0 || current > integers[index - 1]) {
return [...result, current];
}
return result;
}, []);
}
console.log(solution([7,3,9,5,6,12]));
위의 코드는 reduce 함수를 사용하여 현재 수와 이전 수를 비교하고, 현재 수가 더 큰 경우에만 result 배열에 추가하는 방식으로 구현되었습니다. 이 방법을 사용하면 조건문이 필요 없어져서 코드가 더 간결해집니다. 코드 스타일은 개인의 취향에 따라 다를 수 있지만, 위의 예시처럼 작성하면 더 깔끔해 보일 수 있어요. 참고하시기 바랍니다. 이상이 답변입니다. 좋은 하루 되세요!