❓문제
- 정수인 숫자를 인자로 받았을 때, 그 숫자를 뒤집어서 반환하는 함수 작성
- 예를 들어
1234를 입력했을 때 -4321을 반환
1230을 입력했을 때 321을 반환const reverse = (x) => { }
🔓 (문제 파악) 인자로 받은 숫자를 뒤집어야 한다.
🔑 (해결 방안) 먼저 숫자를 배열로 변환한 뒤, 배열의 순서를 뒤집는다.
🔓 (문제 파악) 숫자를 배열로 변환해야 한다.
🔑 (해결 방안)
1. 숫자를 먼저 문자열로 변환한 뒤 →String()
생성자를 활용const numIntoString = String(x);
- 문자열을 배열로 변환한다 →
String.split()
메소드를 활용const stringIntoArr = numIntoString.split('') /* string.split(seperator) → seperater가 빈 문자열('')일 경우, string의 모든 문자를 원소로 가지는 배열을 반환 */
🔓 (문제 파악) 변환된 배열의 순서를 뒤집어야 한다.
🔑 (해결 방안)Array.reverse()
메소드를 활용하되,
x가 음수일 경우에는 '-' 요소를 배열의 맨 앞으로 이동시켜야 함
→ 음수가 입력되었을 때, 음수를 반환하기 위함const reverseArr = stringIntoArr.reverse(); if(x < 0) { reverseArr.pop(); // 배열의 맨 마지막 요소를 제거하고 reverseArr.unshift('-') // 배열의 첫 부분에 '-' 요소를 추가 }
🔓 (문제 파악) 뒤집은 배열을 다시 숫자로 변환한다.
🔑 (해결 방안)
1. 배열을 먼저 문자열로 변환한 뒤 →Array.join()
메소드를 활용const joinedNumArr = reverseArr.join(''); /* Array.join(seperator) → seperator가 빈 문자열('')일 경우, array의 모든 요소들 사이에 아무 문자 없이 연결하여 반환함 */
- 문자열을 숫자로 변환하여 반환한다 →
parseFloat()
함수를 활용return parseFloat(joinedNumArr);
const reverse = (x) => {
if (x < 0) {
const arr = String(x).split('').reverse();
arr.pop();
arr.unshift('-');
return parseFloat(arr.join(''));
} else {
return parseFloat(String(x).split('').reverse().join(''));
}
};
console.log(-123400) // -4321