CodingTest
JS - Week1 - Day 4
너구리개발자
2022. 12. 3. 03:34
Q.
숫자인 num을 인자로 넘겨주면, 뒤집은 모양이 num과 똑같은지 여부를 반환해주세요.
num: 숫자 return: true or false (뒤집은 모양이 num와 똑같은지 여부)
예를 들어, num = 123 return false => 뒤집은 모양이 321 이기 때문
num = 1221 return true => 뒤집은 모양이 1221 이기 때문
num = -121 return false => 뒤집은 모양이 121- 이기 때문
num = 10 return false => 뒤집은 모양이 01 이기 때문
A.
const sameReverse = (num) => {
const arr = Array.from(num.toString());
//숫자형식의 num을 toString() 메소드로 문자열로 반환
//Array.from()메소드로 문자열을 얕게 복사해 새로운 Array객체 생성
const reverseArr = Array.from(arr).reverse();
//원본배열 arr을 변경하지 않으려, Array.from()메소드로 얕게 복사한 후
//reverse()메소드로 배열을 뒤집어 reverseArr 변수에 넣음
for (let i = 0; i < arr.length; i++) {
if (arr[i] !== reverseArr[i]) { //원본배열 arr과 뒤집은배열 reverseArr은 같은 인덱스로 비교해야함
return false; //반복문을 통해 해당 인덱스의 값이 다르면 false 리턴
}
return true;
}
};
Learned:
원본배열에 영향을 주지않는 Array.from()메소드
Array.from() 메서드는 유사 배열 객체(array-like object)나 반복 가능한 객체(iterable object)를 얕게 복사해 새로운Array 객체를 만든다.