reverse 함수에 정수인 숫자를 인자로 받습니다.
그 숫자를 뒤집어서 return해주세요.
x: 숫자
return: 뒤집어진 숫자를 반환!
예들 들어,
x: 1234
return: 4321
x: -1234
return: -4321
x: 1230
return: 321
const reverse = x => { stringNum = x.toString().split("").reverse() if(x<0){ stringNum.pop(); stringNum.unshift("-"); const num = stringNum.join("")); const num2 = Number(num); } return num2; } console.log(reverse(-1234));
1) stringNum = x.toString().split(‘’).reverse()
우선 순서가 중요하기 때문에 배열형태로 숫자 한개씩을 배열로 만들어서 접근하려했고, 그래서 숫자를 문자열로 바꾸고 문자열을 분할하고 배열로 리턴하는 split 메소드를 이용하였다.🤩
2)reverse메소드로 배열의 요소를 역순으로 바꾸어서 stringNum 변수에 할당했다.
3) if(stringNum[stringNum.length-1] === ‘-’)
stringNum의 마지막 요소가 -(마이너스 문자열) 이면
stringNum.pop();
마지막 요소를 제거하고 그 값을 리턴해주는 pop 메소드로 마지막 - 요소를 삭제했다.
4) stringNum.unshift(‘-’);
그리고 배열의 맨 첫번째 요소로 -(마이너스 문자열)을 추가했다.
5) const num = stringNum.join("")); const num2 = Number(num);
join 메소드를 통해 배열의 모든 요소를 연결해 하나의 문자열로 리턴한다. 합쳐진 문자열을 변수에 할당하고 Number메소드로 숫자로 다시 바꿔준다.
주어진 x인자 값이 음수일 때 조건을 동기들과 푼 방법을 이야기 하면서if(stringNum[stringNum.length-1] === ‘-’)
이렇게 문자열로 변환 하고 조건문으로 판단하는 것 보다 단순하게
if(x<0){ stringNum.pop(); stringNum.unshift("-");
이렇게 수정하는 것이 효율적이지 않을지 이야기해보았다. mock 데이터로 결과를 확인해보면서 역시 같은 결과를 얻을수 있었고 작은 부분이지만 코드가 간결해졌다.😁
const reverse = x => {
stringNum = x.toString().split("").reverse()
if(x<0){
stringNum.pop();
stringNum.unshift("-");
} return Number(stringNum.join(""));
}
console.log(reverse(-1234));