reverse 함수에 정수인 숫자를 인자로 받습니다. 그 숫자를 뒤집어서 return해주세요.
x: 숫자 return: 뒤집어진 숫자를 반환!
예들 들어, x: 1234 return: 4321
x: -1234 return: -4321
x: 1230 return: 321
const reverse = x => {
let xToString = "" + x;
let ret = "";
if (xToString.charAt(0) === '-') {
ret = '-';
for (let i = 1; i < xToString.length; i++) {
ret += xToString[xToString.length - i];
}
} else if (xToString.charAt(0) !== '-') {
for (let i = 0; i < xToString.length; i++) {
ret += xToString[xToString.length - i - 1];
}
console.log(ret);
}
return (Number(ret));
}
const reverse = x => {
const str = String(x);
let res;
if (!x) {
return (x);
}
if (x > 0) {
res = str.split("").reverse().join(""); // 배열됐다 리버스됐다 문자열됐다
return (+res);
} else {
res = str.split("").reverse().slice(0, str.length - 1).join("");
return (-res);
}
}
메서드를 적극적으로 사용하면 간결한 코드가 나오는 것 같음. 분기할 때 x < 0 // x >= 0 으로 했으면 더 좋았을 것 같음. 받은 인자보다 변환한 문자열에 너무 얽메였던 것 같음. 1230을 뒤집은 0321은 숫자로 변환할 때 321로 변환되기 때문에 따로 처리하지 않음.
문자열을 온전한 배열로 사용하고싶을 때 str.split("")
배열을 문자열로 바꿔서 사용하고싶을 때 arr.join("")
배열을 반복문 없이 뒤집고싶을 때 arr.reverse()